我过去一直使用SVN,现在我们已经超越了项目的初始阶段,我们需要弄清楚我们未来增强的分支过程。
在阅读本文时,我们看到TFS有搁置。
他们如何比较?每个人都有什么大问题?
一般来说,这是首选的,为什么?
答案 0 :(得分:21)
Shelvesets是按用户而且以不同方式存储在源代码管理中 - 无法合并搁置集,没有历史记录等。唯一可能的行动是取消搁置;你这样做甚至无法合并文件。因此,我们只将它用作尚未完成的事物的临时存储,因此无法检入分支。
所以,你应该使用分支;-)可能是一个主分支和不同的开发分支的功能和& bugfixing。
答案 1 :(得分:11)
搁架和分支是不一样的概念。
分支正在取代码基础并“拆分”它,基本上是复制它。开发团队可以在自己的分支上工作(例如),然后可以将所有更改合并回原始分支。分支只能合并到TFS中的父分支。
Shelving允许开发人员将源代码控制系统中的代码检查成“搁置”。代码未检入主分支。如果构建管理器或其他开发人员“获得最新”,则默认情况下他不会获得搁置代码。搁架像所有其他代码一样安全地存储在源代码控制中,它不在分支中。其他开发人员可以下架以查看效果。在某些时候,更改将被检入主分支,并将成为变更集的一部分。
它对搁架,合并和各种分支模型有一个非常简单但有效的解释。
答案 2 :(得分:7)
避免上架。你总是会在一个较新版本的文件上恢复搁置并丢失所有已提交的更改。只有当你开始在一个稳定的分支上工作时才使用货架,并意识到所需的变化比预想的要大。然后搁置你的工作,创建一个分支,并取消它的优势。
答案 3 :(得分:5)
搁架和分支是两件完全不同的事情。搁架允许您将所有更改存储到TFS中,但它们实际上并未签入任何特定分支。您的更改只是以给定名称保存。这实际上非常有用,因为它是进行代码审查的好方法。我可能已经对10个不同的文件进行了更改。我将用一个名字创建这些变化的搁置集。然后我会请别人检查我的货架。然后,我可以取消搁置这些更改或删除搁置集。
分支是一个过程,您可以通过该过程制作代码主干的完整副本,并为其指定名称和位置。然后,您可以检查/退出/合并代码分支。在处理下一版本的应用程序时,这非常棒。您可以创建一个分支来处理新功能。
以下是搁置集的一个很好的解释:http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx
答案 4 :(得分:5)
Shelvesets是待定更改,注释和相关工作项的集合。
方案:
当您的开发团队需要同时处理项目的两个不同副本时,需要一个分支。
答案 5 :(得分:2)
答案 6 :(得分:1)
分支,是主分支的副本。您可以使用分支来说明尝试做某事的想法。这很好,因为如果出现问题,您可以丢弃原始文件,就像删除文件副本一样。如果情况顺利,你将分支合并回原始分支,说“Main”。
Shelve类似于临时文件夹。您可以将它们用于代码审查,或者像我们一样,或者如果您需要修复某些内容,那么它就可以在TFS中备份并备份。你搁置你正在处理的任何代码(给它一个标签),然后恢复为main。完成后,然后将Main换成搁架,生命继续而不停止。
答案 7 :(得分:0)
如果出于某种原因无法提交更改,可以搁置更改。然后,可以选择保留本地更改(即在本地保留搁置的副本)或在本地恢复到当前版本(并且更改仅存在于搁置的副本中)。如果在本地保留更改,搁置是将一个版本的代码保存在存储库中并且可以防止本地磁盘崩溃的好方法。
此外,当一个人进行了大量尚未检查的更改时,搁置非常有用,而且在开始“冒险且复杂”的编码实验之前,人们希望保留该版本。如果实验结果很糟糕并且想要丢弃它,可以简单地取消搁置的搁置副本。如果实验成功,可以简单地删除货架或让它在默默无闻中萎靡不振。