上一个: commit options, 上层: commit


A.10.2 commit 示例

A.10.2.1 提交到分支

你可以用 `-r' 选项提交到分支修订版(小数点是偶数)。要创建分支修订版,需要用 rtagtag 命令里面的 `-b' 选项(参阅 Branching and merging)。 之后,checkoutupdate 就基于新创建的分支。从这一刻起,这些工作 源码的修改 commit 都自动添加到分支修订版,也就是不会干扰主线上的开发。 例如,你给产品的 1.2 版做了个补丁,即使已经开发到了 2.0 版,你也可以:

     $ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
     $ cvs checkout -r FCS1_2_Patch product_module
     $ cd product_module
     [[ hack away ]]
     $ cvs commit

因为 `-r' 选项是粘性的,所有工作都自动进行。

A.10.2.2 编辑完之后建立分支

当你在进行试验性软件的开发,工作是基于上周检出的修订版。如果小组里面的其他人要 与你一同参与这个软件,但又不想干扰主线上的开发,你可以将修改提交到新的分支上。 其他人可以检出你试验性的工作,并利用 cvs 解决冲突的特性。场景如下:

     [[ hacked sources are present ]]
     $ cvs tag -b EXPR1
     $ cvs update -r EXPR1
     $ cvs commit

update 命令可以在所有的文件加上粘性的 `-r EXPR1' 选项。注意, 你对文件的修改将不会因 update 命令删除。由于 `-r' 是粘性的, commit 将自动提交到正确的分支。你也许会:

     [[ hacked sources are present ]]
     $ cvs tag -b EXPR1
     $ cvs commit -r EXPR1

但这样做,只有这些修改过的文件有 `-r EXPR1' 粘性标识。如果你继续开发, 提交时没有指定 `-r EXPR1' 标识,一些文件可能会提交到主干。

其他人要跟你一同进行试验性开发,只需

     $ cvs checkout -r EXPR1 whatever_module