SVN的介绍
https://zh.wikipedia.org/wiki/Subversion
安装说明:
系统环境:CentOS 6.75
安装方式:YUM安装
安装:
先确认本地是否已经安装subversion
1
|
rpm -qa subversion
|
如果有安装subversion,先删除旧版本
1
|
yum remove subversion
|
安装svn
1
|
yum -y
install
subversion
|
检查版本
1
|
svnserve --version
|
安装后的配置:
创建SVN库:
1
|
mkdir
-p
/opt/svn
|
创建repo代码库
1
|
svnadmin create
/opt/svn/repo
|
创建完成后,生成以下文件
1
2
3
4
5
6
7
8
|
[root@localhost repo]
# ll
total 24
drwxr-xr-x. 2 root root 4096 Jun 15 20:05 conf
drwxr-sr-x. 6 root root 4096 Jun 15 20:26 db
-r--r--r--. 1 root root 2 Jun 15 19:08
format
drwxr-xr-x. 2 root root 4096 Jun 15 19:08 hooks
drwxr-xr-x. 2 root root 4096 Jun 15 19:08 locks
-rw-r--r--. 1 root root 229 Jun 15 19:08 README.txt
|
配置代码库:
cd /opt/svn/repo/conf
添加账户密码psswd配置
修改passwd文件,通过在文件中追加 账号 = 密码来创建用户
1
2
3
4
5
|
[
users
]
# harry = harryssecret
# sally = sallyssecret
zeng = 123456
zhou = 123456
|
权限控制authz配置
svn的权限控制都是在authz文件中设定,该文件定义了哪些用户可以访问哪些目录
[groups] #组
admin = hello,www #创建一个admin组,将用户hello、www加入到组
[/] #根目录权限设置(就是“svn”这个文件夹)
aaa = rw #aaa对svn下的所有版本库有读写权限
[repo:/] #repo:/,表示对repo版本库下的所有资源设置权限
@admin = rw #admin组的用户对repo版本库有读写权限
[repo2:/occi], ,表示对版本库repo2中的occi项目设置权限
[repo2:/occi/aaa], ,表示对版本库2中的occi项目的aaa目录设置权限 权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
服务svnserve.conf配置
[root@admin conf]#vim svnserve.conf
追加以下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#使授权用户有写权限
auth-access = write
#密码数据库的路径
password-db = passwd
#访问控制文件
authz-db = authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm = repo //这里也可以写完成路径 /opt/svn/repo
防火墙配置
使用svn必须在SVN服务器上开发防火墙端口,或者直接关闭防火墙
防火墙开发svn的端口,编辑/etc/sysconfig/iptables文件,加入以下配置
1
|
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
|
SELinux配置
建议直接disable掉selinux
启动SVN
1
|
svnserve -d -r
/opt/svn/
|
停止svn服务
1
|
killall svnserve
|
查看svn的服务进程
1
2
|
[root@localhost conf]
# netstat -tunlp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 1473
/svnserve
|
客户端的安装:
windows上安装客户端
客户端下载地址:http://ufpr.dl.sourceforge.net/project/tortoisesvn/1.9.4/
需要安装tortoisesvn客户端和语言包。
安装完成后,需要重启。然后更改语言
测试
在客户端桌面上创建一个svntest的目录。然后在桌面上右键 ==> SVN检出
注意上图中svn地址不能写成svn://172.16.42.133/opt/svn/repo的完整路径,否则会报错
客户端上传文件
将windows上要添加的文件移动至repo文件夹进行上传,上传哪个文件就点击右键—添加
添加完成后,再次右键==>提交
客户端的具体使用,可以参考下面的官网文档。
http://ufpr.dl.sourceforge.net/project/tortoisesvn/1.9.4/Documentation/TortoiseSVN-1.9.4-zh_CN.pdf
修改文件的正确操作流程:
先更新要修改的文件,然后将文件锁定,这样别人虽然能同时修改这个文件,但是不能提交。当你编辑完成并提交后,文件自动解除锁定
如何创建并启用多个代码库?
跟前面的操作一样,创建代码库,这里以新建一个名为it的代码库为例
1
|
svnadmin create
/opt/svn/it
|
然后和前面一样,修改配置文件。
启用代码库,监听在不同的端口上
1
|
svnserve -d -r
/opt/svn/it
--listen-port 3691
|
1
2
3
|
[root@localhost conf]
# netstat -tunlp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 1740
/svnserve
tcp 0 0 0.0.0.0:3691 0.0.0.0:* LISTEN 1791
/svnserv
|