前言
本文解说Linux零碎下如何搭建SVN服务器,具体阐明各配置项的性能,最终实现可管控多个我的项目的简单配置。
SVN是subversion的缩写,是一个凋谢源代码的版本控制系统,通过采纳分支管理系统的高效治理,实现最终集中式的治理。
目前很多互联网公司在应用SVN,长处在于使用方便、易于治理。与之对应的分布式的版本控制系统Git则更加灵便。
搭建
装置SVN
//Ubuntuapt-get install subversion//Centosyum install subversion
查看是否装置胜利,能够查看版本。
svnserve --version
提醒版本1.13.0,阐明已装置胜利。
创立版本库目录
创立SVN版本库目录,为前面创立版本库提供寄存地位,也是最初启动SVN服务的根目录。
咱们在/usr门路下创立svn目录作为版本库目录。
cd /usrmkdir svn
Linux零碎各目录常识延长:
所以,将SVN库存放在用户文件目录/usr下比拟正当。
创立SVN版本库
在上一步建设门路根底上,创立版本库,如dev。
cd /usr/svnsvnadmin create dev
创立胜利后,能够查看到dev目录下生成的文件。
批改SVN配置
进入conf目录,查看须要批改的配置文件。
cd /usr/svn/dev/confls
配置文件:
- authz:权限配置文件,管制读写权限
- passwd:账号密码配置文件
- svnserve.conf:svn服务器配置文件
批改svnserve.conf文件
vim svnserve.conf
去掉anon-access、auth-access、password-db、authz-db、realm几项前的正文符号“#”。
配置项含意:
- anon-access = none|read|write 决定非受权用户的拜访级别。none 示意无拜访权限,read 示意只读,write 示意可读可写,默认为 read。
- auth-access = none|read|write 决定受权用户的拜访级别,应用与下面雷同的拜访级别。默认为 write。
- password-db = filename 指定账号密码数据库文件名。filename 是绝对仓库中 conf 目录的地位,也能够设置为绝对路径,默认为passwd。
- authz-db = filename 指定权限配置文件名,filename 是绝对仓库中 conf 目录的地位,也能够设置为绝对路径,默认为authz。
- realm = realm-name 指定版本库的认证域,即在登录时提醒的认证域名称。若两个版本库的认证域雷同,倡议应用雷同的账号密码数据库文件passwd。
认证域常识延长:
在SVN客户端登录时,会提醒realm认证域,如下图的认证域
My First Repository
。
批改passwd文件
vim passwd
只需在开端增加账号和明码,格局 账号 = 明码
,如user1 = 123456
,可增加多个。
批改authz文件
vim authz
在根目录下设置user1、user2读写权限:
如果用户比拟多,能够应用groups模式设置分组team1,并在根目录下指定分组@team1的权限:
如果想设置其余用户的权限,能够通过*
设置,如设置除@team1分组外其余用户只读权限:
[/]@team1 = rw* = r
启动SVN服务
执行SVN启动命令,其中参数-d
示意以守护过程的形式启动, -r
示意设置的根目录。
svnserve -d -r /usr/svn/
敞开svn命令:
killall svnserve
本地拜访SVN服务
在windows零碎中,装置TortoiseSVN软件,创立一个本地目录,右键抉择SVN Checkout测试下,URL填写svn://IP/dev
,dev替换成你创立的版本库名称。
输出passwd配置好的用户。
Checkout completed,SVN拜访胜利,这就Nice了~
扩大
设置查看log日志
想查看提交的svn log日志,须要进一步配置。
编辑svnserve.conf,设置:
anon-access = none
编辑authz文件中增加:
[/]* =
这样通过鼠标右键TortoiseSVN->show log就能够查看svn提交的历史记录了。
多个我的项目管控配置
SVN配置文件是很灵便的,如果想应用对立的账户和权限去管控多个我的项目,能够将多个我的项目的authz和passwd文件对立放在一处,在多个我的项目的svnserve.conf文件中配置这两个文件的绝对路径,并在authz中对不同的我的项目设置用户拜访权限。
如:a、b、c、d这4个用户,p1、p2两个我的项目,其中a、b只能拜访p1,c、d只能拜访p2。
创立版本库目录
mkdir /usr/svn
创立多个版本库
cd /usr/svnsvnadmin create p1svnadmin create p2
创立治理用户权限目录
mkdir /var/svn/confcd /p1/confcp authz passwd /var/svn/conf
批改配置文件
批改p1的svnserve.conf文件:
anon-access = noneauth-access = write password-db = /var/svn/conf/passwd authz-db = /var/svn/conf/authz realm = p1
批改p2的svnserve.conf文件:
anon-access = noneauth-access = writepassword-db = /var/svn/conf/passwdauthz-db = /var/svn/conf/authzrealm = p2
password-db和authz-db都应用对立治理用户权限目录,应用绝对路径。
批改password-db文件
[users]a = 123b = 123c = 123d = 123
批改authz文件
[groups] //分组p1user = a,bp2user = c,d[/]* = #以上没有定义的用户都没有任何权限[p1:/] //p1的访问控制,c、d无法访问@p1user = rw[p2:/] //p2的访问控制,a、b无法访问@p2user = rw
对password-db和authz文件的批改立刻失效,不用重启svn。
启动svn服务
svnserve -d -r /usr/svn/
拜访不同我的项目SVN
同样TortoiseSVN软件,抉择SVN Checkout测试。
拜访我的项目p1 URLsvn://IP/p1拜访我的项目p2 URLsvn://IP/p1
对立的配置文件,不同我的项目限定了不同用户拜访,这样就实现了管控多个我的项目的SVN配置。
以上就是Linux零碎搭建SVN服务器具体教程的所有内容,心愿对大家有所帮忙。
你学“废”了么?
文章首发于我的博客 https://echeverra.cn/svnserve,原创文章,转载请注明出处。
欢送关注我的微信公众号 echeverra,一起学习提高!不定时会有资源和福利相送哦!