背景

因目前现有业务上线需要在Linux 系统中部署SVN版本控制仓库,进行项目代码的版本迭代化更新使用,话不多说需求就是这么简单,搭建出来测试没问题就行,话不多说,干!

概念

SVN(Subversion)是一个自由、开源的项目源代码版本控制工具。目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件。

Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器。不同的是,它可以记录每一次文件和目录的修改情况,这样就可以在需要的回滚时,将数据恢复到以前的版本,并可以查看数据的更改细节。

SVN 官方网址:http://subversion.apache.org/

需求

步骤:

  1. 检查是否已经有svn
  2. 安装subversion
  3. 创建svn资源仓库
  4. 新增用户及密码,配置权限,配置资源库权限
  5. 启动或者重启服务
  6. 从机安装subversion
  7. 测试

环境

Linux: CentOS Linux release 7.6.1810 (Core)
subversion: 1.7.14-16.el7(yum安装目前是最高版本)

配置

 SVN常用命令
 
1. 将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
简写:svn co

2. 往版本库中添加新的文件
svn add file

3. 将改动的文件提交到版本库
svn commit -m “LogMessage” [-N][--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
简写:svn ci

4. 加锁/解锁
svn lock -m “LockMessage” [--force] PATH
svn unlock PATH

5. 更新到某个版本
svn update -r m path
简写:svn up

6. 查看文件或者目录状态
1. svn status path(目录下的文件和子目录的状态,正常状态不显示)
2. svn status -v path(显示文件和子目录状态)
简写:svn st

7. 删除文件
svn delete path -m “delete test fle”
简写:svn (del, remove, rm)

8. 查看日志
svn log path

9. 查看文件详细信息
svn info path

10、比较差异
svn diff path(将修改的文件与基础版本比较)
svn diff -r m:n path(对版本m和版本n比较差异)
简写:svn di

11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path

12、SVN 帮助
svn help
svn help ci


# 使用svn updates的时候,更新下来的文件也有会一些标识符。

A:add,表示新增的文件

C:conflict,表示文件有冲突

G:表示本地文件以及服务器文件都已更新,而且成功的合并了

R:表示文件或者目录被替换了

D:delete,表示删除的文件

U: update,表示已更新的文件

M:modify,本地修改过的文件

? : 表示未被纳入到版本库中的文件

实施

步骤一:检查是否有SVN

[root@slave2 ~]# svnserve --version
-bash: svnserve: command not found

步骤二:安装subversion

[root@slave2 ~]# yum install -y subversion

步骤三:创建svn资源仓库

[root@slave2 ~]# svnadmin create /svn
[root@slave2 ~]# cd /svn/
[root@slave2 svn]# ls
conf  db  format  hooks  locks  README.txt
[root@slave2 svn]#
[root@slave2 svn]# ll
总用量 8
drwxr-xr-x. 2 root root  54 3月  16 11:53 conf
drwxr-sr-x. 6 root root 233 3月  16 11:53 db
-r--r--r--. 1 root root   2 3月  16 11:53 format
drwxr-xr-x. 2 root root 231 3月  16 11:53 hooks
drwxr-xr-x. 2 root root  41 3月  16 11:53 locks
-rw-r--r--. 1 root root 229 3月  16 11:53 README.txt
conf 代表配置文件
db   代表存储数据

步骤四:新增用户及密码,配置权限,配置资源库权限

[root@slave2 ~]# cd /svn/conf
[root@slave2 conf]# ll
总用量 12
-rw-r--r--. 1 root root 1080 3月  16 11:53 authz
-rw-r--r--. 1 root root  309 3月  16 11:53 passwd
-rw-r--r--. 1 root root 3090 3月  16 11:53 svnserve.conf
authz: 权限配置文件
passwd: 用户以及密码文件
svnserver.conf: 资源库配置文件
1. 先创建用户以及密码
[users]
# harry = harryssecret
# sally = sallyssecret
test01 = 123456
2. 其次配置权限
vim authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

[/]
* = r
@root = rw
dangerman =

[svn:/]
@root = rw
在[groups]下面加入:
* = r #所有用户有读权限
dangerman = ##危险分子?什么是危险分子?没有任何权限

[svndir:/] ###定义目录,项目的根目录
* = rw
3.这个配置文件打开下面几行前面的注释,删除最前面的空格:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository

解释:
anon-access = none:表示禁止匿名用户访问
auth-access = write:表示授权用户有读写权限
password-db = passwd:指定用户名口令文件
authz-db = authz:指定权限配置文件
realm = /var/svnrepos:指定认定域

步骤五:启动或者重启服务

[root@slave2 svn]# svnserve -d -r /svn/data/

步骤六:从机安装subversion

[root@nginx ~]# svn checkout svn://10.1.1.13/svn/

作者:运维老许

出处:https://www.strives.cn/

联系方式:strive120620@163.com

微信公众号:Linux必修之路

声明1:本站部分资源收集自互联网,仅供个人学习交流,如不慎侵犯了您的权益,请联系我,我将尽快处理!

声明2:本文版权归作者,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利!

最后修改:2021 年 06 月 08 日 10 : 09 AM
请献出你的爱心,你的小小心意,是对博主最大的认可与支持!