为什么标有TFS“合并”所有文件?(Why are all files marked with &#

2019-07-29 06:32发布

我合并我的开发分支到主分支。 只有我在我的开发分支已更改的文件的一个子集,所有其他文件应保持不变。 从逻辑上讲,我只是想合并,我已经改变了的文件。 我不会检查中,我并没有改变的文件。

但是,当我做TFS合并操作,它标志着在变革型“合并”树上的每一个文件。 它看起来像我必须在整个源代码树签的每一个文件! 我真的不希望这样做becasue那么就不可能看变更,看看文件,我acctually改变我的项目的一部分。

起初,我以为我可以使用tfpt.exe撤消不变命令撤消所有的“合并”的变化,但这不会撤消这些更改。

任何人有任何想法? 谢谢。

Answer 1:

有许多可能的原因。 这不是一个完整的列表:

  • 如果对这些文件的父文件夹标记进行命名空间操作(删除,不删除,重命名)“合并”
  • 您执行了命名空间操作(删除,不删除重新命名)已经在目标分支被执行的
  • 您执行的瘫倒在无操作的命名空间的一系列操作(删+反删除或重命名如 - >乙 - >)
  • 有未解决的冲突
  • 您进行丢弃

注:所有这些同样适用于2005年和2008年。



Answer 2:

这也发生了毫无根据的合并。 当TFS没有你归并的分支之间的现有关系合并发生毫无根据的合并。 其结果是,它认为在这两个分支的每一个文件的“新”,所以“合并”所有文件。

要创建一个合并的关系,使未来的合并只列出你已经修改了文件,你需要做的所有更改的毫无根据的合并到一个指定的版本,以便TFS知道公共基线应该是什么。 合并这些改变之后,你应该这样做-这是为时已晚,现在来纠正这个分支的基线。

如果你实际上并不希望采取与其他分支任何变化,但只是告诉TFS,这些都是逻辑上的版本相同,你可以做一个合并“给予信贷”的变更: tf merge /discard



Answer 3:

在Visual Studio 2008和TFS 2008,这种情况不会发生。 只有已更改的文件将被标记为合并。 如果你做一个比较分支与行李箱之间的文件有什么变化? 如编码的变化仍将使TFS合并这个文件回来。



文章来源: Why are all files marked with 'merge' in TFS?