如何在CVS和SVN中使用分支
From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community
每个软件版本,最好有阶段性的分支(其实就是版本)。这里我们要用好版本管理工具。我在这里用CVS为例子做一个案例设计和说明。
我用CVS为例,SVN因为全面兼容CVS,所以可以换个命令名即可(参数基本相同)。
目录 |
[编辑] 生成分支
在CVS里面有个命令可以生成分支,如下:
cvs rtag -b Branchname my_module
在SVN里头,方法略微有些区别,用的是copy命令,如下:
svn copy http://svnhost/repos/my_module/trunk \ http://svnhost/repos/my_module/branches/my_version \ -m "Creating a private branch of /my_module/trunk."
比如,在omni里头,如果omni是我们的项目仓库名称的话,可以这么干:
cvs rtag -b OMNI_7_08 omni
用 svn 的话是:
svn copy http://svnhost/repos/omni/trunk http://svnhost/repos/omni/branches/omni_7_08 \ -m "创建了 7.08 分支"
[编辑] 在分支上工作
这样,omni这个项目,就有一个分支,叫 OMNI_7_08了。如此一来,我们可以单独checkout 7.08版本的工作,方法是:
cvs checkout -r Branchname my_module
在 svn 上,方法是:
svn checkout http://svnhost/repos/my_module/branches/my-calc-branch
对于omni来说,我建议这样:
mkdir ~/omni_7_08 cd ~/omni_7_08 cvs checkout -r OMNI_7_08 omni
或者最后一步用svn是:
svn checkout http://svnhost/repos/my_module/branches/omni_7_08
这样在 ~/omni_7_08 目录里,会多一个 omni (项目名)目录,你在那里做的任何修改,都会绑在 7.08上头,而不会在主分支上有变化。
如果日后,7.08想打一个子版本,比如7.08.1,那么可以这么干:
cvs rtag -r Tagname -b Branchname my_module
对于omni,就是这样:
cvs rtag -r OMNI_7_08_1 -b OMNI_7_08_1 omni
这样日后可以单独 checkout 7.08.1的版本了。
[编辑] 小提示
在CVS里,你可以用
cvs log
命令,查看所有分支的情况,基本上我会加个 less:
cvs log |less
这样可以看到头部的分支。CVS里头,主分支永远叫HEAD。
[编辑] TODO
谁有空看看SVN的,按说应该是兼容的。
