# yum install subversion
我们这里在 /usr/local/svnrep
下建立一个仓库 (repository) , 名字也是 svnrep :
# cd /usr/local/
# mkdir svnrep
# svnadmin create /usr/local/svnrep
创建成功后在 /usr/local/svnrep
会有相关文件夹 :
drwxr-xr-x 2 root root 4096 Mar 30 20:05 conf
drwxr-sr-x 6 root root 4096 Mar 30 20:05 db
-r--r--r-- 1 root root 2 Mar 30 20:05 format
drwxr-xr-x 2 root root 4096 Mar 30 20:05 hooks
drwxr-xr-x 2 root root 4096 Mar 30 20:05 locks
-rw-r--r-- 1 root root 229 Mar 30 20:05 README.txt
上面的文件中 , 文件夹 conf
是用来存放配置文件的 :
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务配置文件
[users]
# harry = harryssecret
# sally = sallyssecret
tojohn = 123456
guest = 123456
创建了 tojohn
和 guest
的用户 , 密码都是 123456
;
[/]
tojohn = rw
guest = r
* =
上面配置的含义是 对于仓库 (/usr/local/svnrep
) 下所有文件 , 用户 tojohn
有 读写 权限 , guest
用户只有 读 权限 , 其它用户 无任何权限 (由最后一行 * =
表示) ;
[groups]
group1 = tojohn
group2 = guest
[/]
@group1 = rw
@group2 = r
* =
上面配置中创建了 2 个分组 , 分组 1 的用户可读可写 , 分组2的用户只读 , 组内的用户有多个的话用逗号隔开 ;
打开下面的5个注释 :
anon-access = read # 匿名用户可读
auth-access = write # 授权用户可写
password-db = passwd # 使用哪个文件作为账号文件
authz-db = authz # 使用哪个文件作为权限文件
realm = Ensk's SvnRep # 版本库认证域 , 使用 SVN 客户端访问时 , 会出现在提示信息中 , 最好自定义下域的标志以方便辨别库
打开注释时前面不要留有空格 , 否则访问库会报错
# svnserve -d -r /usr/local/svnrep
使用 TortoiseSVN , 输入地址 svn://192.168.22.159:3690/
即可 , 再输入用户名和密码就能访问了
默认端口 3690 , 如果你修改了端口 , 那么要记得加上修改后的端口号 ;
服务器默认使用 3690 端口号 , 要使用非默认端口 , 可以在启动命令后面加一个 --listen-port xxxx
:
# svnserve -d -r /usr/local/svnrep --listen-port 3691
则端口号变为 3691 , 同时还可以为同一个服务器上不同的 SVN 项目设定不同的端口号 , 比如还建有另一个项目那么可以启动 :
# svnserve -d -r /usr/local/svnrep1 --listen-port 3692
则 svnrep1 项目监听 3692 端口号 , 这样在使用 netstat -ntlp
进程查看时会查看到另个 svnserver , 客户端可以指定端口来访问不同的项目 ;
作者 Github : tojohnonly , 博客 : EnskDeCode