上一个: commit options, 上层: commit
你可以用 `-r' 选项提交到分支修订版(小数点是偶数)。要创建分支修订版,需要用
rtag
或 tag
命令里面的 `-b' 选项(参阅 Branching and merging)。
之后,checkout
或 update
就基于新创建的分支。从这一刻起,这些工作
源码的修改 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' 选项是粘性的,所有工作都自动进行。
当你在进行试验性软件的开发,工作是基于上周检出的修订版。如果小组里面的其他人要 与你一同参与这个软件,但又不想干扰主线上的开发,你可以将修改提交到新的分支上。 其他人可以检出你试验性的工作,并利用 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