CVS 分支管理

来自 PostgreSQL wiki
跳转至导航跳转至搜索


本页面包含历史信息或已弃用文章


警告:PostgreSQL 项目现在使用 Git 进行版本控制。请参阅 使用回退分支,而不是本文档来获取有关列出和检出代码旧分支的信息。


本文作者:Tom Lane - 2001-05-07

如果您只需执行基本“cvs checkout”、“cvs update”、“cvs commit”,那么您将始终处理 CVS 中文件的 HEAD 版本。对于开发而言,这是您想要的,但如果您需要修补过去的稳定版本,则必须能够访问和更新我们 CVS 储存库的“分支”部分。在启动下一版本的开发周期之前,我们通常会为一个稳定版本分叉一个分支。

您首先要知道您想获取的分支的分支名称。要获取现有分支的列表,您可以使用此命令。

  cvs status -v configure.in

(感谢 Ian Lance Taylor 指出这是最简单的方法。)典型的分支名称为

   REL7_1_STABLE
   REL7_0_PATCHES
   REL6_5_PATCHES

那么,您如何在分支上执行工作?迄今为止最好的方法是创建该分支的单独检出树,并在其中进行您的工作。这不仅是处理 CVS 最简单的方法,而且您实际上也需要整个过去树来测试您的工作。(并且您*最好*测试您的工作。千万不要忘记,点版本倾向于在极少的测试版测试中发布 --- 因此,每当您将更新提交到稳定分支时,您最好加倍确定它正确无误。)

通常,要检出头分支,您只需 cd 到您希望包含顶级“pgsql”目录的位置,然后输入

   cvs ... checkout pgsql

要获取过去的某个分支,请 cd 到您希望的位置,然后输入

   cvs ... checkout -r BRANCHNAME pgsql

例如,就在几天前,我执行了以下操作

   mkdir ~postgres/REL7_1
   cd ~postgres/REL7_1
   cvs ... checkout -r REL7_1_STABLE pgsql

现在我拥有 7.1.* 的维护副本。

当您以这种方式进行检出时,分支名称带有“sticky”属性:CVS 会自动知道这个目录树是该分支的,并且每当您在这个树中执行“cvs update”或“cvs commit”时,您都会获取或存储分支中的最新版本,而不是头版本。再简单不过了。

因此,如果您有一个补丁需要应用于头分支和最近的稳定分支,那么您必须进行两次编辑并提交两次,一次在您的开发树中,一次在您的稳定分支树中。这有点麻烦,但没有更好的办法。