Subversion搭建版本控制系统

前言
如何更有效、更安全地管理程序源代码,这对每一位程序员都是至关重要的,当然我也不例外,于是Subversion就成了我管理所有代码及文件的重要工具。

安装Subversion
Debian etch中提供的是1.4.2,目前最新版本是1.4.3
apt-get install subversion
Windows版本Subversion安装程序下载请点击此处

创建版本库
subversion提供了两种数据存储方式:BerkeleyDB和FSFS
创建svn_server版本库
mkdir /home/tony/svn_server
svnadmin create --fs-type fsfs /home/tony/svn_server #指定数据存储为FSFS,如果要指定BerkeleyDB,则将fsfs替换为bdb
给所有用户写的权限,不然apache做服务器后客户端用户提交时会出问题-_-
chmod a+w /home/tony/svn_server

添加项目
创建临时项目tsmood
mkdir /home/tony/tmp/tsmood
cd /home/tony/tmp/tsmood
我在这个项目中创建了三个顶级子目录,分别是branches、tags和trunk
mkdir branches tags trunk
然后导入这个项目到svn_server版本库
svn import /home/tony/tmp file:///home/tony/svn_server -m'initial import'

查看版本库
svn list --verbose file:///home/tony/svn_server
svnlook info /home/tony/svn_server #查看最新修订版本的信息 --revision可以指定版本号
svnlook tree /home/tony/svn_server --show-id #显示版本库的具体树形结构

Subversion与Apache Http Server相互结合的服务器配置
用户可以通过Http协议来访问版本库,先要安装mod_dav_svn模块
apt-get install libapache2-svn
配置Apache的/etc/apache2/httpd.conf文件,让Apache在启动的时加载上述模块
vi /etc/apache2/httpd.conf
添加以下内容
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
<Location /svn_server>
DAV svn
SVNPath /home/tony/svn_server
</Location>

通过Apache进行基本的权限配置
htpasswd -c /etc/apache2/svn_server_passwd tony #(参数-c 可以强制建立新的密码文件)
会要你输入密码,并要求重新输入以进行确认
New password: mypassword
Re-type new password: mypassword
Adding password for user tony
修改/etc/apache2/httpd.conf
vi /etc/apache2/httpd.conf
在<Location></Location>中加入以下内容
AuthType Basic
AuthName "svn server"
AuthUserFile /etc/apache2/svn_server_passwd
Require user tony

重新启动Apache2
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
打开浏览器输入http://serverIP/svn_server

客户端调用
配置完成后,我就可以在世界上任何可以上网的地方来管理和维护自己的源代码了。
svn co http://serverIP/svn_server/tsmood /home/tony/svn_client/tsmood

猜你喜欢

转载自tsmood.iteye.com/blog/1933084