现在的位置: 首页 > 综合 > 正文

ubuntu 12.04 svn server

2018年05月08日 ⁄ 综合 ⁄ 共 1937字 ⁄ 字号 评论关闭
文章目录

1:安装命令

apt-get install subversion

2:创建一个SVN账号和SVN组,并保证SVN账号已经添加进了SVN组,我的SVN账号是svnuser
 
$ sudo adduser svnuser              添加SVN账号
 
$ sudo addgroup subversion       添加SVN组
 
$sudo usermod -G subversion -a svnuser          将svnuser添加到subversion组


$ cat /etc/group|grep subversion        确认是否添加成功,如果添加成功会显示以下内容:
subversion:x:1004: svnuser

3.创建一个SVN仓库
 
$ sudo mkdir /home/svn
 
$ cd /home/svn
 
$ sudo mkdir myproject
 
$sudo chmod -R g+rws myproject
 
$ sudo chown -R svnuser:subversion myproject
 
$ sudo svnadmin create /home/svn/myproject
 
$ sudo chown -R svnuser:subversion myproject
 
$sudo chmod -R g+rws myproject
 

这个地方一定要保证看到以下内容:
 
ls -l /home/svn/myproject/db/txn-current-lock
 
-rw-rwSr-- 1 svnuser subversion  0  2009-06-18  15:33  txn-current-lock

 
不然在SVN递交时,会提示:
 
Can't open '/home/svn/myproject/db/txn-current-lock': Permission denied
 
相当于在myproject下,所有文件都要属于subversion这个组的svnuser这个用户
 
4.配置仓库访问权限,刚才创建了一个名称为myproject的SVN仓库,现在要设置它的访问权限。

位于/home/svn/myProject/conf/文件夹下的authz、passwd、svnserve.conf文件

svnserve.conf:svn服务配置文件,该文件版本库目录的conf目录下。

passwd:用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的。

authz:权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的。 

6.设定为开机自动开启服务:
 
编辑文件/etc/rc.local,在exit0前一行添加一下内容:
 
svnserve -d -T -r /home/svn

启动svn服务器(svn可以分为单个或多个版本库)

svnserve -d -r /home/svn
-d 表示svnserver以“守护”进程模式运行
r /home/svn 这代表你当前svn可以多版本库运行,客户端访问就需要加上 svn://IP/project 这样才能访问project版本库

svnserve -d -r /home/svn/project
这代表你当前svn只为project这个版本库工作,客户端访问直接svn://IP/ 就可以了,后面不跟目录
设置访问权限

进入conf/svnserve.conf设置

[general]
anon-access = none #匿名用户无法查看
auth-access = write #认证用户,有可写权限
password-db = passwd #密码文件
authz-db = authz #权限文件

进入conf/password,添加账户和密码

svn3

进入config/authz,设置访问权限

如果是一个版本库,那应该设置成如下:

[groups]
g_admin = user1,user2
[/]
@g_admin=rw

如果是多个版本库,那就应该设置成这样:

[groups]
g_admin = user1,user2
[project:/]
@g_admin=rw

[groups]字段下的g_admin = user1,user2
代表着user1,user2属于g_admin,
第二个字段[project:/]
代表着@g_admin用户组,对project仓库有可读,可写权限。

把当前路径下的文件夹内容变成svn副本

cd /home/user/mydirname

svn co file:///svn/foo/mydirname . 

这里的svn co后面的file://your path。例如svn co file:///mnt/sdb1/svn/asuswrt-merlin .

svn add ./*

svn ci -m "init first svn project"

此时本地路径就OK了。

抱歉!评论已关闭.