如何在CVS和SVN中使用分支

From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community

Jump to: navigation, search

每个软件版本,最好有阶段性的分支(其实就是版本)。这里我们要用好版本管理工具。我在这里用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的,按说应该是兼容的。

[编辑] 相关链接

svn 官站

cvs branch 使用手册

Personal tools