SVN是subversion的缩写,是一个开放源代码的版本掌握系统,通过采取分支管理系统的高效管理,实现终极集中式的管理。
目前很多互联网公司在利用SVN,优点在于利用方便、易于管理。与之对应的分布式的版本掌握系统Git则更加灵巧。
//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做事用具体教程的所有内容,希望对大家有所帮助。