安装SVN服务器

 

前言

svn是目前使用比较多的版本控制软件,目前在windows下面的常用的svn客户端是乌龟,svn服务器常用的是 VisualSVN Server.在windows下面的客户端使用比较简单,例如VisualSVN就是傻瓜式操作。目前在linux下,svn服务器一般有两个选择:svnserve和apache,下文就主要介绍怎么在ubuntu9.10里安装和使用svn服务器。

Part 1:安装和创建本地库

在ubuntu下,需要安装的有apache2 subversion libapache2-svn
$ sudo apt-get install apache2 subversion libapache2-svn

现在所有需要的软件都安装上了,下一步在本地建一个目录作为本地仓库
$ mkdir /home/myrepos
$ svnadmin create /home/myrepos
到这一步,你就在本地建了一个代码仓库,你可以往里面加入工程,代码,并且可以在任何时候将代码回到你想要的时候。

例如现在有个工程,名称为 myproject,加入所在的路径是 /root/temp/myproject , 现在你想将这个工程导入到你的本地仓库中。
$ svn import -m "first import" /root/temp/myproject  file:///home/myrepos
这样这个工程就在你的本地仓库里了。现在你可以在本地任何目录里,从你的本地库里获取一个你的工程的拷贝。
$ svn checkout file:///home/myrepos
在这个拷贝里,你可以做修改,并通过命令提交到主干上。
$ svn commit -m " i have modify file"

加入你在这个拷贝里面新建了一个文件,叫做 c.java,你可以提交到本地库中。
$ svn add c.java
$ svn commit -m "first commit"

Part 2:svn服务器svnserve

svnserve和apache相比是轻量级的,也比较简单,svnserve包含在subversion里面,所以只要安装了subversion就相当于安装了一个小型的svn服务器。它使用自己的一套协议通信。例如访问apache时使用 http:// 前缀,而svnserve使用 svn:// 前缀.

上节里面我们在本地建了一个myrepos本地库,现在我们让svnserve运行起来
$ svnserve -d -r /home/myrepos
如果出现,这样的错误信息,“svnserve: 不能绑定服务器套接字: 地址已经被使用”
那先把svnserve进程干掉。
具体做法是
$ ps -aux  #查看进程,svnserve的pid为23647
$ kill -9 23647 #干掉svnserve
再次运行$ svnserve -d -r /home/myrepos

在局域网内的机器就可以和svnserve进行通讯。假如你的本机ip是10.13.37.84.可以通过下面的命令获取到拷贝。
$ svn checkout svn://10.13.37.84 myproject
这样一个简单的svn服务器就算建好了。

下一步我们来做权限管理
修改/home/myrepos/conf/svnserve.conf 改成下面这样
anon-access = read
auth-access = write
password-db = passwd
其中anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,这很好,我们不需要改它们。但如果想拒绝匿名用户的访问,只需把 read 改成 none 就能达到目的。password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在同一个目录,下面看看怎么配置 passwd 中的内容。
# harry = harryssecret
# sally = sallyssecret
我们新建个自己的账户。
tester = mypasswd
这样tester就有写的权限了。
$svn commit -m " i am so strong" --username tester --password mypasswd

Part 3:svn服务器apache

 

现在我们使用apache作为svn服务器,apache支持http协议通信,配置也比较简单,主要是权限配置。

首先安装好apache。然后进去/etc/apache2/conf,修改apache2.conf,在下面加入

 

<Location "/myrepos">
DAV svn
SVNPath /home/myrepos
AuthType Basic
AuthName "Your repository name"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

 

其中/etc/subversion/passwd这个文件中保存的是用户信息,这个文件需要我们新建。

然后添加一个用户

$ sudo htpasswd /etc/subversion/passwd tester

你需要把 repo 所在的目录和文件的所有权都改成系统中操作 Apache 的用户,这样在 commit 的时候才会被 Apache 认可。在 Ubuntu 中,这个用户叫 www-data

$ sudo chown -R www-data /home/myrepos

然后我们重启apache

$ sudo /etc/init.d/apache2 restart

 

最后我们测试一下,在浏览器里输入http://localhost/myrepos/

看见了工程目录就成功了。

在局域网中,也可以访问。

$ svn checkout http:// #svn服务器ip# /myrepos

 

 

参考:http://bemike.org/posts/258

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值