Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control TFS中的每家分行促销权衡_Version Control_Tfs_Branch_Branching And Merging - Fatal编程技术网

Version control TFS中的每家分行促销权衡

Version control TFS中的每家分行促销权衡,version-control,tfs,branch,branching-and-merging,Version Control,Tfs,Branch,Branching And Merging,假设我们有一个大型TFS2010项目,有三个分支:MAIN、TST和PRD 策略是:每当Sprint完成时,MAIN被复制/合并到TST中。只要TST被认为是稳定的,它就会被复制/合并到PRD中。只要TST或PRD有修复程序,它们就会合并回MAIN或MAIN和TST。(别问我为什么,我无法控制,我也不是特别喜欢。) 据我所知,在每个促销步骤中,您可以: 再次删除目标分支和分支-这意味着无法立即访问该分支的历史记录(它总是可以恢复的,对吗?) 合并并使用AcceptTheres解决-这需要丢失可能

假设我们有一个大型TFS2010项目,有三个分支:MAIN、TST和PRD

策略是:每当Sprint完成时,MAIN被复制/合并到TST中。只要TST被认为是稳定的,它就会被复制/合并到PRD中。只要TST或PRD有修复程序,它们就会合并回MAIN或MAIN和TST。(别问我为什么,我无法控制,我也不是特别喜欢。)

据我所知,在每个促销步骤中,您可以:

  • 再次删除目标分支和分支-这意味着无法立即访问该分支的历史记录(它总是可以恢复的,对吗?)
  • 合并并使用AcceptTheres解决-这需要丢失可能尚未从目标合并回原点的更改
  • 对于合并备份,拥有祖先信息很重要。和1。我希望保留祖先信息。和2。我不确定

    因此,有两个问题:

  • 这两种方法是在分支机构之间推广软件的可能/可取的方法吗
  • I哪些情况下不保存祖先信息
  • 对于可能与大型存储库相关的任何其他权衡,都需要额外的分数

    1.这两种方法是在分支机构之间推广软件的可能/可取的方法吗

    如果MAIN有一个子分支TST,它有一个子分支PRD,那么在不使用无基础合并的情况下,这些是促进分支之间更改的唯一合并

    如果这是一种理想的分支策略,则取决于许多因素,如发布了多少并行版本以及团队规模。这方面的一个很好的参考指南是TFS Rangers的分支指南。您使用的版本似乎是基本双分支计划的变体(您称之为main,他们称之为dev,您的生产分支不是唯一的)。如果只有一个版本在生产中,并且发行版应该始终包含所有制作的内容,那么这种分支策略最有效

    2.在哪些情况下不保存祖先信息


    如果文件被复制或分支被销毁。但是,如果您需要一直删除和/或重新创建分支和/或需要持续使用AcceptThres,则通常表示:;分支策略不充分、TFS培训不充分或测试和修补策略存在问题(在生产和开发中发现的错误会同时被发现并修复,从而导致合并冲突)。

    升级步骤应该是定期合并,不需要AcceptThres选项。如果在将迭代n合并到PRD时发生冲突,则应该有与n-1合并相关的冲突文件的祖先信息,只要没有进行复制、删除或销毁操作。对的