本文讨价如何在Ubuntu7.10下架设配合apache工作的subversion服务器端及客户端的使用。
如果你只想用Subversion进行版本管理,不想安装apache服务器,则只需要安装subversion一个软件包,参考《Ubuntu:Subversion服务器安装设置》一文中的6.4节,使用svnserve直接进行subversion服务。
使用apache上架设的subversion服务器最大的好处就在于即使没有安装客户端也能通过浏览器查看最新的版本。并且可以做到对所有的版本库使用 统一的用户名密码进行访问,这对于像我这样的版本库主要为个人使用来言是非常方便的,而且必要的时候也可以对单一版本库单独设置权限。
Ubuntu7.10下安装Subversion服务相当简单,在已经安装apache服务器的情况下执行:
sudo apt-get install subversion libapache2-svn
就可完成服务器及标准客户端的安装。
在终端执行:
sudo gedit /etc/apache2/mods-available/dav_svn.conf
在打开的文件末尾加入:
<Location /svn>
DAV svn
SVNParentPath /media/hda7/svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>
其中第一行中“/svn”是版本库在URL的路径,这样在访问“http://127.0.0.1/svn”时就不会去找WWW下的文件夹,而是执行这里设定的SVN操作。
第三行中“/media/hda7/svn”是我之前在Windows下放版本库的地方,每一个版本库都在其下建立一下子文件夹。所以前面写的是 “SVNParentPath”,如果只有一个版本库想直接指向里面,请使用“SVNPath”替换“SVNParentPath”,并将后面的路径直接 指向作为版本库的文件夹。
倒数第三行定义了存储登录验信息的passwd文件的位置。
在终端中使用
sudo htpasswd -c /etc/subversion/passwd test
创建第一个用户test,并按照提示为其设置密码。以后增加用户时使用
sudo htpasswd /etc/subversion/passwd 新用户名
保险起见,执行
sudo /etc/init.d/apache2 restart
重启apache服务器。
现在用浏览器打开http://127.0.0.1/svn应该会有提示输入用户名和密码。
创建新的Subversion软件仓库,在之前设定的放置软件仓库的文件夹(这里是“/media/hda7/svn”)内新建一个文件夹,如test,然后执行
$ sudo svnadmin create /media/hda7/svn/test
将其制作成软件仓库。这时就可以通过http://127.0.0.1/svn/test对其访问。
Subversion客户端上,用Eclipse有SubEclipse插件可用,NetBeans6自带支持。
独立使用的客户端linux上没有tortoise,只能用RapidSVN,比较工具配合Meld。两个软件在Ubuntu的“添加/删除”软件里都能找到。使用方法就不多说了。