朱清林's Blog

朱清林's Blog

Ubuntu下搭建SVN服务

1、首先安装SVN这个软件

sudo apt-get install subversion

 2、在home目录下创建一个名为svn的文件夹

sudo mkdir /home/svn

 3、创建数据仓库(可以根据需要创建多个)

sudo svnadmin create /home/svn/test

 4、启动svn网络服务

sudo svnserve -d -r /home/svn

 其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库

5、设置svn: 方式的访问权限

在每个数据仓库目录下都有一堆目录,进入 conf 并打开 svnserve.conf 这个文件,找到以下几行

anon-access = read
auth-access = write
password-db = passwd

其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。
但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。
password-db 后的 passwd 则为定义用户名及密码的文件路径。
这个文件默认跟 snvserve.conf 在同一个目录,下面看看怎么配置 passwd文件中的内容。

[user]
# harry = harryssecret
# sally = sallyssecret

harry 和 sally 这两行分别定义了可以对 repo 进行写入的用户的用户名和密码。我们可以在下面加上自己的用户名和密码,比如

[user]
# harry = harryssecret
# sally = sallyssecret
xiaozhu = xiaozhu

这样就给了用户xiaozhu往 svn中写的权限。存盘退出后,svn 服务器就算正式可以运行了!

把所有需要管理的项目都放在 /home/svn这个目录下,像正常那样用 svnadmin create 命令建立数据仓库。

这样就可以使用svn客户端通过 “svn co svn://IP地址/数据仓库目录” 的方式把服务器上的数据仓库检出到本地了。

6、设置服务器自动更新SVN

 操作之前确保目录已经svn checkout (svn已经检出)

sudo mv /home/svn/test/hooks/post-commit.tmpl /home/svn/test/hooks/post-commit  //修改文件名 要有执行的权限
sudo vim /home/svn/test/hooks/post-commit     //编辑文件,内容如下
REPOS="$1"
REV="$2"
#TXN_NAME="$3"
#"$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf
export LANG=en_US.UTF-8
svn up /var/www/test --username xiaozhu --password xiaozhu

/var/www/test 目录要有相应的权限

svn up 是svn的更新命令,后面跟上的是你已经svn checkout(检出)的目录,最后的两个参数是svn连接用的用户名和密码。

这样配置好,以后每次提交代码,服务器端的目录就会自动更新代码了。

原文地址:http://www.lltonet.com/9.html

阅读 302   190