linux下svn服务器搭建以及相关问题解决方案

版本:ubuntu 10.04

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 fitness
$ sudo chown -R root:subversion fitness
$ sudo chmod -R g+rws fitness
4.创建SVN文件仓库
$ sudo svnadmin create /home/svn/fitness
5.访问方式及项目导入:
$ svn co file:///home/svn/fitness
或者
$ svn co file://localhost/home/svn/fitness
* 注意:
如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//).
//--
下面的命令用于将项目导入到SVN 文件仓库:
$ svn import -m "New import" /home/svn/fitness file:///home/svnuser/src/fitness
一定要注明导入信息
//--------------------------//
6.访问权限设置
修改 /home/svn/fitness目录下:
svnserve.conf 、passwd 、authz三个文件,行最前端不允许有空格
//--
编辑svnserve.conf文件,把如下两行取消注释
password-db = password
authz-db = authz
//补充说明
# [general]
anon-access = read
auth-access = write
password-db = passwd
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿
名用户的访问,只需把 read 改成 none 就能达到目的。
//--
编辑/home/svnuser/etc/passwd 如下:
[users]
mirze = 123456
test1 = 123456
test2 = 123456
//--
编辑/home/svnuser/etc/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
描述说明:
-d 表示svnserver以“守护”进程模式运行
-r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库
如: svn://192.168.12.118/fitness
这时SVN安装就完成了.
局域网访问方式:
例如:svn checkout svn://192.168.12.118/fitness --username mirze --password 123456 /var/www/fitness

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 IPMsg

$ sudo chown -R root:subversion IPMsg

$ sudo chmod -R g+rws IPMsg

4.创建SVN文件仓库$ sudo svnadmin create /home/svn/IPMsg

访问方式及项目导入:

$ svn co file:///home/svn/IPMsg

或者

$ svn co file://localhost/home/svn/IPMsg

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

//--下面的命令用于将项目导入到SVN 文件仓库:

$ svn import -m "New import" /home/wanpeng/Desktop/IPMsg file:///home/svn/IPMsg //注意前边是项目,后边是svn仓库

一定要注明导入信息//--------------------------//

6.访问权限设置修改 /home/svn/IPMsg/conf目录下:svnserve.conf 、passwd 、authz三个文件,行最前端不允许有空格

//--编辑svnserve.conf文件,

把如下两行取消注释

password-db = password

authz-db = authz

//补充说明# [general]

anon-access = read

auth-access = write

password-db = passwd

其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿名用户的访问,

只需把 read 改成 none 就能达到目的。

//--编辑/home/svn/IPMsg/conf/passwd 如下:

[users]

zhang = zhang 

long = long 

wang = wang

//--编辑/home/svnuser/etc/authz如下 

[groups]

admin = zhang,long  //用户组1

test = wang  //用户组2

[/]  //当前仓库 ,可以设置成不同的文件夹用户组具有不同的访问权限

@admin=rw  //设置admin用户组权限为读写

*=r  //所有用户的权限为 读

zhang和long属于admin组,有读和写的权限,wang属于test组只有读的权限

7.启动SVN服务svnserve -d -r /home/svn

描述说明:-d 表示svnserver以“守护”进程模式运行-r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,

就可以访问版本库如: svn://127.0.0.1/IPMsg

这时SVN安装就完成了.

局域网访问方式:例如:svn checkout svn://125.222.219.206/IPMsg

输入本机密码,用户名,密码 ok。

--------------------------------------------华丽的分割线----------------------------------------------------------------------------------------------

问题及解决方案:

SVN commit或import 的 Permission denied的原因

关键字: svn permission denied

配置svn+apache服务器时,在导入或提交时,如果是unix、linux、mac os x等系统可能遇到类似这样的权限问题:

写道

svn: 提交失败(细节如下): 

svn: Can't open file ' /home/svn/IPMsg/db/txn-current-lock': Permission denied

 或者

写道

svn: 提交失败(细节如下): 

svn: Can't create directory '/home/svn/IPMsg/db/transactions/1-2.txn': Permission denied

这个主要原因:在svnadmin create时是root身份,所以,mod_dav_svn就没有write权限等。

解决办法:

写道

sudo chown -R daemon /home/svn/IPMsg

sudo chmod -R 755 /home/svn/IPMsg

 再试就ok~

其他机器提交显示如下错误时

[purecoder@purecoder IPMsg]$ svn ci *

svn: 提交失败(细节如下): 

svn: 无法使用外部编辑器获得日志信息;考虑设置环境变量 $SVN_EDITOR,或者使用 --message (-m) 或 --file (-F) 选项

svn: 没有设置 SVN_EDITOR,VISUAL 或 EDITOR 环境变量,运行时的配置参数中也没有 “editor-cmd” 选项

使用svn commit 命令时给出-m的log选项

[purecoder@purecoder IPMsg]$ svn ci -m "log content" *

 
至于svn的使用请参照Linux+svn+google code
原文地址:https://www.cnblogs.com/wanpengcoder/p/1780082.html