在CVS中使用分支需要遵循的原则:
- 减少同时活动的开发分支的数量
经常尽快地把你的开发工作合并到主干上,当然是在你的开发分支处于稳定点的时候。
注意并不是减少分支的绝对数量,而是要减少同时工作的分支数量。
- 减少分支的复杂性(深度)
有时候需要在分支上建立分支,但这种情况很少见,在你一生的程序开发中也难以遇见一次这种情况。
CVS在技术上支持在分支上建分支,并且可以从一个分支合并到另一个分支,但这并不意味着你真正需要这样做。
在大多数情况下,你最好把所有的分支都建立在主干上,将改动从分支合并到主干,然后BACK OUT。
- 使用统一的标签(TAG)来标记所有的分支和合并点
最好是每个标签的含义及其与其他分支及标签的关系可以从该标签的名称中很明显的看出来。
- 不要使用keyword expansion
典型的分支开发情形:
每个分支和主干上都可能有很多人在进行开发,但是在每个分支或主干最好由一个人负责打标签和合并工作。
- Zhang3从主干建立分支
``cvs tag ROOT-OF-TEST_A``
``cvs tag -b BRANCH-TEST_A``
强烈建议在主干的分支点建立一个标签来进行标记
- Zhang3在分支上工作
``cvs update -r BRANCH-TEST_A``
修改了一些文件并提交到分支上
``cvs ci -m "fixed something."``
- Li4在主干上工作
修改的文件中有两个与Zhang3修改的冲突
- Zhang3所在分支已经稳定点
张三在分支上进行标记以便进行合并
``cvs tag TEST_A-1``
- Li4进行合并
cvs update -j BRANCH-TEST_A
冲突很少,Li4进行了修复、提交修改并标记主干已成功合并
``cvs ci -m "merge from BRANCH-TEST_A (conflicts resolved)"``
``cvs tag merged-TEST_A``
- Zhang3又在分支上做完一些修改,并进行了标记
``cvs tab TEST_A-2``
- Li4也在主干上做了一些修改
``cvs ci -m "something"``
- Li4再次从分支进行合并
``cvs update -j TEST_A-1 -j BRANCH-TEST_A``
``cvs ci -m "merged again from TEST_A(TESTA-1,TEST_A-2)"``
``cvs tag merged-TEST_A-2``
阅读(741) | 评论(0) | 转发(0) |