CentOS 5 上配置 Trac 和 Git
2009年08月23日 | 标签: git, subversion, trac | 作者:vpsee
VPSee 一直使用 Subversion 来管理自己和其他人的项目,甚至文档和资料也是通过 Subversion 来管理的。最近大家对 Subversion 抱怨变多,主要是因为慢,特别是 merge 速度很慢,checkout 也很慢,从本地局域网 checkout 有时候不到 20K 每秒,一直想找个机会换掉 Subversion。版本控制软件可选的不多,有名的就这么几个:CVS、Subversion、Arch、Bazaar、BitKeeper、Git。Git 是 Linus Torvalds 开发的一套版本控制系统,其初衷是用来替代 BitKeeper。经过一段时间的沉淀,现在 Git 终于开始步入主流,在开源项目里很受欢迎,Linux Kernel、Perl、Gnome、Ruby on Rails、Android、Fedora、Debian、X.org 等都是用 Git 来做版本控制的,Digg 最近也在考虑从 Subversion 移到 Git。Git 是分布式版本控制,与 Subversion 集中式控制不同,刚开始接触 Git 可能有点不适应,一旦熟悉以后就会发现 Git 特别方便,简单实用,而且速度超快。Trac 和 Subversion 组合起来很强大,通过 Git Plugin for Trac 插件 也可以把 Trac 和 Git 组合起来,而且还不需要额外的类似 Apache + mod_svn 的支持。
安装和使用 Git
安装过程很简单:
# yum install git
增加 Git 用户:
$ git config --global user.name "vpsee" $ git config --global user.email "[email protected]"
创建一个项目目录,把所有想被版本控制的文件、目录拷贝进来:
$ mkdir myproject $ cd myproject/
在 myproject 目录里初始化 git,并把想要加入到 git 的内容做标记,最后 commit 到 git:
$ git init $ git add . $ git commit
上面初始化完成后就可以开始修改 myproject 目录里的内容,修改完毕后执行下面命令就提交到 git 仓库中:
$ vi file1 $ git add file1 $ git commit
如果 A(192.168.0.2)想在下载 B (192.168.0.1)机器上的 myproject 到本地,则需要在 A 机器上执行:
$ git-clone [email protected]:~/myprojectB myprojectA
如果想 A 修改了 myprojectA 里面的文件以后,B 想合并到自己的 myprojectB,需要在 B 上执行:
$ git pull [email protected]:~/myprojectA
如果 A 和 B 对 myproject 里的不同的文件进行了改动,那么可以轻松完成仓库合并;如果 A 和 B 对相同的文件进行了改动,那么合并时会遇到冲突的问题,此时需要手动修改冲突文件,然后将结果提交到本地仓库后再 push 到另外一台机器(或者从另外一台机器 pull)。
安装 Trac 和 GitPlugin
安装 Trac,需要安装 MySQL、Lighttpd 等,具体参考 CentOS 5 上配置 Trac 和 Subversion 一文,忽略 Subversion 和 Apache 部分。
Git Plugin for Trac 有 0.10 和 0.11 两个版本,分别对应不同的 Trac 版本号,下载后安装:
# unzip gitplugin-r6411.zip # cd gitplugin # python setup.py install
如果安装的是 0.10 版本,需要做如下修改,注意下面的 repository_dir 是 myproject/.git 不是 myproject:
# vi trac/conf/trac.ini [trac] repository_dir = /home/myproject/.git repository_type = git [components] gitplugin.* = enabled
如果是 0.11,需要做如下修改:
# vi trac/conf/trac.ini [trac] repository_dir = /home/myproject/.git repository_type = git [git] cached_repository = true persistent_cache = true shortrev_len = 6 [components] tracext.git.* = enabled
打开浏览器 http://yourdomainname.com/trac/browser 就可以浏览 source code 了。
VPSee, svn我觉得性能可以啊。你提到的慢,不知在svn中管理的项目有多少,每个项目的结构是怎样的?
SVN主要慢在通过网络访问时。我一般用mercurial,即使中心代码库是SVN的,我也用mercurial镜像到本地。因为我审查代码的工作比编码的多,经常要对比各个修订版本。
用 git 主要还是受 github 影响,因为我们很多人都有 github 帐号,都熟悉 git,一些代码也要传到 github,所以 git 方便一些。
什么时候利用这个做vpsee的admin panel啊?
我想问一下、你上面提到了可以用插件实现trac+git的多项目代码管理、那个插件是??没找到呀、如果你及时看到了该评论、请发邮件[email protected],O(∩_∩)O谢谢
请问怎么实现trac+git的多项目代码管理?用上面插件?O(∩_∩)O谢谢、、[email protected]
如果 A 和 B 对 myproject 里的不同的文件进行了改动,那么可以轻松完成仓库合并;如果 A 和 B 对相同的文件进行了改动,那么合并时会遇到冲突的问题,此时需要手动修改冲突文件,然后将结果提交到本地仓库后再 push 到另外一台机器(或者从另外一台机器 pull)。
本地局域网 checkout 有时候不到 20K 每秒,一直想找个机会换掉 Subversion。版本控制软件可选的不多,有名的就这么几个:CVS、Subversion、Arch、Bazaar、BitKeeper、Git。Git 是 Linus Torvalds 开发的一套版本控制系统,其初衷是用来替代 BitKeeper。经过一段时间的沉淀,现在 Git 终于开始步入主流,在开源项目里很受欢