引用路径:http://blog.csdn.net/cxzhq2002/article/details/8518250
什么时候用分支: 例如为某个客户定制的专用版本,和主干的特性有很大差别.不具通用性的需求.
大的版本修改,例如2.0 到3.0 加了很多特性,但2.0 还有维护.改bug
分支的优点: 清晰,容易操作,程序员只要get latest/checkin latest就可以了
标签的优点: 灵活
标签的缺点: 如果要对某个label的版本进行hotfix, 操作起来比较麻烦, 要先get specific version by label, 然后修改代码,checkin之后会产生一个新的changeset, 然后在一个workspace里面get labelversion,然后get changset, 重新label一个version.来发布hotfix. 发布之后还要把之前latest的代码copy一份,重新check in latest
========================================
有策略地进行分支
源代码是开发工作中的一项重要资产。如果有策略地进行分支,则可保持软件的多个版本的顺序和一致性。
使用版本控制。
反之,如果您将代码从 MAIN 分支合并到 DEVELOPMENT 分支中,则此过程称为“正向集成”。
分支和合并需要遵循下列原则:
-
当 MAIN 分支也从其他分支集成更改时,正向集成非常重要。
-
MAIN 分支必须包含已通过集成测试的代码,以便始终准备进行发布。
-
由于团队成员会定期签入更改,因此 DEVELOPMENT(或工作)分支将不断演变。
-
标签是分支中的文件在某个特定时间的快照。
使用标签获取文件快照。
DEVELOPMENT 分支应运行连续生成类型,因为团队必须尽快了解影响 DEVELOPMENT 分支的新签入的发生时间。
通过使用 Team Foundation Server,可以标记一个分支以在某个特定时间点为代码拍摄快照。如下图所示,可以为发布标记 MAIN 分支。这样,您可以将分支返回到此时间点时的状态。
http://msdn.microsoft.com/zh-cn/library/ee782536.aspx
==================
标签是逻辑上的
分支是物理上的
标签历史版本比较、在修改时,中间做应急发布不方便,多任务并发,多团队合作有问题,客户端一个版本。
分支可在任意时刻在主线上发布、修复应急bug、专用版不影响主线,客户端多个版本,容易混乱。
标签和分支的作用:大版本区分。
标签在出现hotfix,并发任务,人员放假回家的情况,大团队作业的情况确实不好。