http://wiki.ubuntu.org.cn/index.php?title=SubVersion
最近又建立了两个仓库,把2003年写的代码加了进去保管。subversion实在太好了。可是自己还是手工添加的仓库,svnadmin,htpasswd,修改dav_svn.conf……这个不是程序员所能容忍的。需要管理工具。找来找去,发觉SVNManager还是不错的。用php编写的。
既然是PHP,经典组合LAMP就有用武之地了…… LAMP的安装配置搜索论坛,ubuntu友们早有详细描述。你安装subversion的时候可能安装了Apache2了,不过,svnmanager不一定需要MySQL,它也支持SQLite。所以,还是得安装PHP5不是。:)
官方网站:
http://svnmanager.sourceforge.net
ubuntu的源里面好东西真多,其他Linux会很痛苦的找工具的时候,ubuntu早就给我们准备好了。打开你的命令行,使用你的apt-get,我们来安装。
SVN需要php-pear,
代码: 全选
sudo apt-get install php-pear
代码: 全选
pear install --alldeps VersionControl_SVN-0.3.0alpha1
代码: 全选
svn co https://svnmanager.svn.sourceforge.net/svnroot/svnmanager/trunk svnmanager
你会发现有两个php文件很醒目,是双胞胎兄弟两个,他们叫:config.php.linux,config.php.windows。模样有什么区别自己打开看。;)
他们是两个样本config.php,我们cp config.php.linux config.php。然后按照自己的需要编辑一下。
代码: 全选
//
// SVNManager config.php file for Linux based servers
//
//Shell command's
$htpassword_cmd = "/usr/bin/htpasswd";
$svn_cmd = "/usr/bin/svn";
$svnadmin_cmd = "/usr/bin/svnadmin";
//Subversion locations
$svn_repos_loc = "/home/svn-repos";
$svn_passwd_file = "/home/svn-repos/svn.passwd";
$svn_access_file = "/home/svn-repos/svn.access";
而$svn_repos_loc,$svn_passwd_file,$svn_access_file是需要我们设置的。
/home/svn-repos的目的其实是建立一个subversion的ParentPath。SVNParentPath。
而另外两个是SVNManger需要保存的用户名文件,具体功能……我也不清楚,哈,会用就行。它们的位置可以不在仓库目录下,或许你有自己保存密码文件的目录。建立两个空白文本文件放在那里就可。
/home/svn-repos请酌情修改为自己设定的位置。这三个东东请保持他在www-data用户组下。
代码: 全选
mkdir svn-repos
sudo chown -R www-data:www-data svn-repos
代码: 全选
<Location /repos>
DAV svn
SVNParentPath /home/svn-repos/
AuthType Basic
AuthName "Subversion"
AuthUserFile /home/svn-repos/svn.passwd
AuthzSVNAccessFile /home/svn-repos/svn.access
Require valid-user
</Location>
代码: 全选
$dsn = "mysqli://svnmanager:123456@localhost/svnmanager";
//The following location is not readable from internet by means of an .htaccess file
//$dsn = "sqlite://svnmanager/svnmanager.db";
如果你想用MySQL想自己建立数据库的话,而又不怎么会用的话。OK,我们就按照上面我给出的那个mysqli://...后面的连接字符串来建一个Mysql的数据库,
代码: 全选
#mysql -u root -q <--- 以root身份进入mysql
Mysql>create database svnmanager; <---懂英语的你一看就明白,建立一个叫svnmanager的数据库。
Mysql>grant all privileges on svnmanger.* to ‘svnmanager’@’localhost’ identified by ‘123456’;
<---建立svnmanager的专属用户,不要忘了,引号里的123456是你的密码。
Mysql>flush privileges;
Mysql>quit;
代码: 全选
sudo /etc/init.d/apache2 restart
http://localhost/svnmanager
你会看到界面,有个Login的的界面,用admin,密码admin进入,要马上建立一个超级用户来管理。这个admin用户只能用一次。
SVNManger对subverion仓库管理的很不错。还提供了以前仓库的导入借口。你会看到:Import existing repositories not controlled by SVNManager这一行字的。把仓库复制进SVNParentPath下,就可以顺利导入了。
////////////////////////我是分割线/////////////////////////////////////////////////////////////
以前用CVS的时候,有个叫cvstrac的管理工具很不错,用c语言写的一个轻量的web服务器。有wiki功能。
而subversion我们可以用Trac,ubuntu的源里就有最新的Trac。看来,这个东东还是很受欢迎的。
代码: 全选
sudo apt-get install trac
你的SVNManager配置成功了吗?成功了用SVNManger建立一个叫test的仓库,他的位置就在/home/svn-repos/test
trac-admin /home/test initenv 。会有设置提示的。重点设置项目名和svn仓库路径,其他的默认就可以。
然后还是权限问题。把它的权限设置在www-data组下。
代码: 全选
sudo chown -R www-data:www-data /home/test
sudo chmod -R g+rsw /home/test
http://trac.edgewall.org/wiki/TracAdmin
trac提供了两种方式启动。一个是用tracd来启动daemon监听端口,一个还是用Apache。
如果上面的/home/test设置正常了。使用:
代码: 全选
tracd -p 8080 /home/test
就可以访问了。
Apache2下设置和subversion类似:
代码: 全选
ScriptAlias /test /usr/share/trac/cgi-bin/trac.cgi
<Location "/test">
SetEnv TRAC_ENV "/home/test"
</Location>
会有同样的效果。
有管理就有权限控制,会用Apache的应该没有难度,有关这个具体见官方地址:
http://trac.edgewall.org/wiki/TracCgi
这个地址的内容更新的还是很快、很仔细的,想好好用Trac的仔细看看。
Trac有汉化包哦,感谢那个汉化的人,来,下载:
http://trac.edgewall.org/attachment/wik ... 0.4_cn.zip
templates和htdocs覆盖 /usr/share/trac 目录下的文件。
trac目录下的python原文件,覆盖 /usr/share/python-support/trac/trac 目录下的文件。界面汉化的还可以。
有了SVNManger管理subversion仓库更方便了。有了Trac更方便团队开发了,其实一个人开发也很需要的……
发个图看看Trac解析subversion代码库的效果。
太多的图我就不抓了,太晚了,得睡了。:)
写完收工咯。ubuntu中文论坛首发,转载请注明 Ubuntu中文论坛。谢谢。