当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]ubuntu下subversion工具Trac和SVNManager的配置方法。(花了我一天的时间研究,请支持)
帖子发表于 : 2007-12-27 2:26 

注册: 2007-12-14 9:18
帖子: 54
送出感谢: 0 次
接收感谢: 0 次
subversion的安装方法见Wiki:
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


然后要安装VersionControl_SVN-0.3.0alpha1。命令行下输入:

代码:
pear install --alldeps VersionControl_SVN-0.3.0alpha1


本篇文章写下的时候,SVNManager的版本是1.03。所以我们最好还是用subversion经常update为好。执行:

代码:
svn co https://svnmanager.svn.sourceforge.net/svnroot/svnmanager/trunk svnmanager


得到最新的SVNManger并移动到 /var/www/ 下。

你会发现有两个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";


$htpassword_cmd,$svn_cmd,$svnadmin_cmd我们可爱的linux是不需要重点设置的,这里是留给那些windows用户的东东,除非你喜欢移动这些工具的位置……通过这个我们可看到SVNManager只支持htpasswd,这是个缺陷。

而$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


然后我们修改/etc/apache2/mods-availabe/dav_svn.conf文件,把我们刚才所建立的三个东东添加如下
代码:
<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>


再往下看config.php我们发觉这么两行:
代码:
$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"; 

恩,Linux下默认$dsn指向mysql,而windows下的config.php指向的是sqlite。
如果你想用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;


好了,我们restart我们的apache2,

代码:
sudo /etc/init.d/apache2 restart


然后访问svnmanager站点,

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


Trac用trac-admin建立trac仓库,其目录结构和subversion类似,需要的话可以放到一起。:)

你的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


trac-admin还有许多功能。具体见Trac的官方帮助。

http://trac.edgewall.org/wiki/TracAdmin

trac提供了两种方式启动。一个是用tracd来启动daemon监听端口,一个还是用Apache。

如果上面的/home/test设置正常了。使用:

代码:
tracd -p 8080 /home/test


启动好了。浏览器下输入:http://localhost:8080/test
就可以访问了。

Apache2下设置和subversion类似:
代码:
ScriptAlias /test /usr/share/trac/cgi-bin/trac.cgi
<Location "/test">
    SetEnv TRAC_ENV "/home/test"
</Location>


重启Apache2。浏览器下输入:http://localhost/test

会有同样的效果。

有管理就有权限控制,会用Apache的应该没有难度,有关这个具体见官方地址:

http://trac.edgewall.org/wiki/TracCgi

这个地址的内容更新的还是很快、很仔细的,想好好用Trac的仔细看看。

Trac有汉化包哦,感谢那个汉化的人,来,下载:

http://trac.edgewall.org/attachment/wiki/TracL10N/trac-0.10.4_cn.zip

templates和htdocs覆盖 /usr/share/trac 目录下的文件。

trac目录下的python原文件,覆盖 /usr/share/python-support/trac/trac 目录下的文件。界面汉化的还可以。

有了SVNManger管理subversion仓库更方便了。有了Trac更方便团队开发了,其实一个人开发也很需要的……

发个图看看Trac解析subversion代码库的效果。

太多的图我就不抓了,太晚了,得睡了。:)

写完收工咯。ubuntu中文论坛首发,转载请注明 Ubuntu中文论坛。谢谢。


附件:
Screenshot-Changeset 19 - cetus - Trac - Mozilla Firefox.png
Screenshot-Changeset 19 - cetus - Trac - Mozilla Firefox.png [ 48.09 KiB | 被浏览 4133 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-12-27 14:16 

注册: 2007-12-26 17:11
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
不错啊


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-01-05 0:21 
头像

注册: 2007-08-24 17:46
帖子: 379
送出感谢: 16
接收感谢: 2
支持一下!


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-03-20 12:49 

注册: 2008-03-20 12:43
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
解压缩时提示:压缩文件格式未知或数据已经被损坏


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-03-20 13:17 
头像

注册: 2006-12-23 13:46
帖子: 9203
地址: Azores Islands
送出感谢: 0 次
接收感谢: 1
:lol:


_________________
no security measure is worth anything if an attacker has physical access to the machine


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-03-21 17:31 

注册: 2007-11-07 22:23
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
楼主啊! 帮帮忙 我按照你的配置咋就没办法安装 VersionControl_SVN-0.3.0alpha1 呢? 是DEBIAN LINUX


页首
 用户资料  
 
7 楼 
 文章标题 : 要怎样安装VersionControl_SVN-0.3.0alpha1.tgz
帖子发表于 : 2008-06-27 21:57 

注册: 2007-01-14 19:05
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
svnadmin@svn:~$ sudo pear install VersionControl_SVN-0.3.0alpha1.tgz
Ignoring installed package pear/VersionControl_SVN
Nothing to install
svnadmin@svn:~$


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译