ubuntu下SVN服务器安装配置

ubuntu下SVN服务器安装配置

1.安装包

sudo apt-get install subversion

2.添加svn管理用户及subversion组

$ sudo adduser svnuser 添加用户

$ sudo addgroup subversion 添加用户组

$ sudo addgroup svnuser subversion 将用户加入到组

3.创建项目目录

sudo mkdir /home/svn 创建文件

cd /home/svn

sudo mkdir myproject 创建SVN服务目录

sudo chown -R root:subversion myproject更改用户属主属组

sudo chmod -R g+rws myproject   添加组写权限

4.创建SVN文件仓库

sudo svnadmin create /home/svn/myproject

5.访问方式及项目导入:

设置访问方式:

svn co file:///home/svn/myproject

或者

svn co file://localhost/home/svn/myproject

* 注意:

如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//).

将项目导入到SVN 文件仓库:

svn import -m "New import" /home/svn/myproject file:///home/svnuser/src/myproject

一定要注明导入信息

6.访问权限设置

修改 /home/svn/myproject下:svnserve.conf 、passwd 、authz

注意:三个文件,行最前端不允许有空格

编辑conf/svnserve.conf

把如下两行取消注释

password-db = password

authz-db = authz

# [general] 补充说明

anon-access = read

auth-access = write

password-db = passwd

其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿名用户的访问,只需把 read 改成 none 就能达到目的。

编辑conf/passwd

[users]

mirze = 123456

test1 = 123456

test2 = 123456

编辑conf/authz

[groups]

admin = mirze,test1

test = test2

[/]

@admin=rw

*=r

这里设置了三个用户mirze,test1,test2密码都是123456

其中mirze和test1属于admin组,有读和写的权限,test2属于test组只有读的权限

7.启动SVN服务

svnserve -d -r /home/svn/myproject

描述说明:

-d 表示svnserver以“守护”进程模式运行

-r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库

如: svn://192.168.12.118/myproject

这时SVN安装就完成了.

局域网访问方式:

例如:svn checkout svn://192.168.12.118/myproject --username mirze --password 123456 /var/www/myproject

此种方法使用subversion自带的svnserve进行配置,对于局域网已经适用,要想在WLan上适用要适用apache方式配置。

8.整个库的导出与导入

svnadmin dump myrepos > dumpfile; 在启动库的情况下执行此命令可已将库导出到dumpfile中,myrepos为库的目录。

svnadmin load newrepos < dumpfile; 启动你创建的库,执行此命令可以将原库中的内容导入到新库中。newrepos是新库的目录

问题列表

(1)       svnserve.conf:xxx:Option exected

这是由于svnserve.conf文件中的配置没有顶格写,配置文件svnserve.conf要求配置项前面没有空格,在解除注释项的时候要随手删去行首的空格

(2)      Can't open file '/home/svn/fitness/db/txn-current-lock': Permission denied

因为在创建版本库的时候用的是root权限,所以svn用户就更新不了db/目录下的文件了(因为提交会更新SVN服务器上版本库中的db/目录)。解决方案就是把db/目录下的文件都放权给操作用户。操作如下:

sudo chmod -R g_rws myproject/db

(3)      Svn: ‘xxxxx ’isn't in the same repository as ‘xxxxx’

在创建版本库的时候,我们使用了如下命令

sudo svnadmin create /home/svn/myproject

在conf/authz配置文件中我们设置相应的

[/] @admin=rw *=r

而如果我们使用如下命令创建版本库:

sudo svnadmin create /home/svn

这个时候在登录版本库的时候就提示不是同一个版本库。对此要设置conf/authz为

[myproject:/] @admin=rw *=r

原文地址:https://www.cnblogs.com/zhangjy6/p/5419935.html