您的位置:首页 > 运维架构 > Linux

linux上svn服务器及客户端的安装配置

2015-08-06 13:08 676 查看
安装软件包:

sudo apt-get install subversion

之后选择SVN服务文件及配置文件的放置位置。我放在了/srv下的svn目录。

cd /srv

sudo mkdir svn

我的svn版本仓库叫pec_src

cd /srv/svn

sudo mkdir pec_src

目录建好后 创建版本仓库

sudo svnadmin create /srv/svn/pec_src

执行之后 pec_src下文件结构如下:  

speech@ubuntu:/srv/svn/pec_src$ ls -l

总用量 24

drwxr-xr-x 2 root root 4096 1月 15 10:52 conf

drwxr-sr-x 6 root root 4096 1月 15 14:52 db

-r--r--r-- 1 root root 2 1月 15 10:50 format

drwxr-xr-x 2 root root 4096 1月 15 10:50 hooks

drwxr-xr-x 2 root root 4096 1月 15 10:50 locks

-rw-r--r-- 1 root root 246 1月 15 10:50 README.txt

下面进行配置:

我们需要修改conf目录下的三个文件,authz;passwd;svnserve.conf

注意:配置行前不要出现空格

编辑svnserve.conf

[general]

#匿名用户不可读

anon-access = none

#权限用户可写

auth-access = write

#密码文件为passwd

password-db = passwd

#权限文件为authz

authz-db = authz

编辑authz 制定管理员组 即admin组的用户为tone admin组有rw(读写权限) 所有人有r(读权限)

[groups]

admin= pec

#pec即为用户名,在此创建,后面设置密码

[/]

@admin =rw

#admin组内都是可读写用户

*=r

#其它所有用户都是可读

这里组的名字 不一定叫admin 你的管理员组名 可以叫做任意的名字,另外比如admin组还有其他用户,可以这样制定 admin=pec,wj,mln 类似这样的写法

编制passwd 文件 设定用户密码

[users]

# harry = harryssecret

# sally = sallyssecret

pec=www

用户pec的密码设置为www 对 没看错 明文的。

以上都做完之后,就可以开启你的svn服务器了。

sudo svnserve -d -r /srv/svn/

svnserve --listen-port 3690 -d -r /home/shiqin/svn/

默认3690,如果3690没有打开,需要打开3690端口,打开依然不行,则

[root@localhost
svn]# /sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

[root@localhost
svn]# /etc/init.d/iptables save

iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]

[root@localhost
svn]# service iptables restart

iptables:将链设置为政策
ACCEPT:filter
mangle nat [确定]

iptables:清除防火墙规则: [确定]

iptables:正在卸载模块: [确定]

iptables:应用防火墙规则: [确定]

-d 已守护模式启动

-r 制定svn版本库根目录 这样是便于客户端不用输入全路径 就可以访问版本库了

例如:svn checkout svn://ip/pec_Src /home/speech/ --username pec --password www

值得注意的是 我这里是用sudo 启动的 因为之前的svn目录 及pec_src目录 我都是在sudo下创建的。目录的所属权限都是root

如果我以 下面的方式启动 是可以的 但是当客户段提交文件的时候 会出问题,因为此时的svnserve 服务对svn版本库目录没有写的权限

svnserve -d -r /erv/svn/

推荐一个14.04 下的svn 客户端

$ sudo add-apt-repository ppa:rabbitvcs/ppa

$ sudo apt-get update

$ sudo apt-get install rabbitvcs-nautilus3

# Optional

$ sudo apt-get install rabbitvcs-gedit

$ sudo apt-get install rabbitvcs-cli

客户端访问:

检出:

svn checkout svn://ip/pec_Src /home/speech/ --username pec --password www

此处已经路径svn://ip/pec_Src 中已经省略掉了 /srv/svn/,直接用/pec_Src

提交:

svn import -m "New import" ./ svn://ip/pec_Src

SVN报错:can't
open file db/txn-current-lock:permission denied 解决方法

其实这个问题是这样的。下面我举个例子:比如版本库SVN是root用户创建的但是启动服务的时候没有选择root启动,而是在其他用户转托管太下启动的,所以只能读不能写。

解决方法:停止svn服务:killall svnserve

在创建版本库的用户下启动svn : svnserve -d -r /opt/....(你版本库的路径)。

svn commit -m "pec" ./FrontEnd/

删除:

svn delete svn://9.186.100.29/TTS_Front_End_Src/debug.log -m "删除测试文件debug.log"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: