SVN默认端口:3690
[root@tom01 www]# yum -y install subversion
[root@tom01 www]# rpm -qa subversion
subversion-1.6.11-15.el6_7.x86_64
mkdir /var/svn #创建svn版本库根目录
svnadmin create /var/svn/project #创建版本库(一个项目)
mkdir /var/svnpasswd #创建密码文件集中管理目录
修改配置文件
vim /var/svn/project/conf/svnserve.conf
anon-access = none #匿名用户没有任何权限
auth-access = write #授权用户可写
password-db = /var/svnpasswd/passwd #使用哪个文件作为账号文件
authz-db = /var/svnpasswd/authz #使用哪个文件作为权限文件
把认证文件和账号文件放入集中管理目录
cd /var/svn/project/conf/
mv authz passwd /var/svnpasswd/
[root@tom01 ~]# chmod 600 /var/svnpasswd/passwd
[root@tom01 ~]# chmod 600 /var/svnpasswd/authz
设置帐号密码
vim /var/svnpasswd/passwd
在[users]块中添加用户和密码,
格式:帐号=密码,如test = 123
设置权限
vim /var/svnpasswd/authz
在末尾添加如下代码:
[/]
test = rw
注:如果要是用组 在定义的组名前加@ 例:在groups标签中创建了sa组 就在定义的项目下@sa 就表示这个项目目录可以让sa组有对应的权限
启动svn版本库
svnserve -d -r /var/svn/
-d 后台运行
–listen-port=3690
-r 指定服务根目录
[root@tom01 ~]# lsof -i :3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 54719 root 3u IPv4 88545 0t0 TCP *:svn (LISTEN)
如果有报错:svnserve: warning: cannot set LC_CTYPE locale
vim /etc/profile
export LC_ALL=C
source /etc/profile
本地测试访问
svn list file:///var/svn/project/
测试
svn import . file:///var/svn/project/ -m "first’ #向svn库中导入数据 . 是当前目录下的文件 -m后面是加一个标签
svn co svn://10.125.192.5/project /project --username=gao --password=gao #下载svn库里文件到/project目录 co=commit
svn up /project #跟新本地project目录 up=upload
svn list file:///var/svn/project --verbose #查看内容
svn log svn://10.125.192.9/project #查看修改记录
svn info svn://10.125.192.9/project
配置windows客户端
在windows中创建一个文件夹存放snv数据
右键文件夹>>SVN Checkout>>svn://10.125.192.5/project(project是创建的版本库)
客户端保存账号信息路径
C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple 下的文件
创建子项目
在主项目project项目下创建了子项目stu01,test用户管理project主项目,linux服务端只修改/var/svnpasswd/authz授权文件。
1.
vim /var/svnpasswd/authz
[project:/stu01]
test= rw
lixiang= rw
[project:/stu02]
lilei = rw
test = rw
2.
windows客户端操作
先用主账号gao创建stu01目录并提交一下操作(这步操作就是在project项目下创建了stu01项目目录)
3.在windows中创建一个文件夹存放snv(stu01项目)数据
右键文件夹>>SVN Checkout>>svn://10.125.192.9/project /stu01 (stu01是project下的子项目)
注:关于项目的问题(路径)
svn可以分为单个或多个版本库,假设:
版本库目录为 /var/svn/project
启动程序如果是:svnserve -d -r /var/svn/project
这代表你当前svn只为project这个版本库工作,客户端访问直接svn://IP/ 就可以了,后面不跟目录
启动程序如果是:svnserve -d -r /var/svn/
这代表你当前svn可以多版本库运行,客户端访问就需要加上 svn://IP/project 这样才能访问project 版本库
[root@tom01 ~]# vim /svn/pro/conf/authz
如果是一个版本库
[/]
root = rw
如果是多个版本库
[/stu01]
li = rw
[/stu02]
lixiang = rw
关键的问题:首先要看svnserver是如何启动的 然后配合小乌龟的路径 不然会有认证错误
1 启动方法 和小乌龟的路径
[root@tom01 ~]# svnserve -d -r /svn/pro/ #以pro为根
小乌龟设置 就不要设置pro路径了
2 启动方法 和小乌龟的路径
[root@tom01 ~]# svnserve -d -r /svn/ 以svn为根所以小乌龟的路径就要指定自己有权限的目录
总结:个人觉得要能正确使用svn 需要看启动方式(启动的路径)、/svn/pro/conf/authz和小乌龟三种路径配合,所以我觉得把/svn/pro/conf/authz的权限路径都设置成[/]好了,只需要让剩下的两个对应上就好了,不然会有点晕。