0

因此,使用 tfs powertools tfpt 命令在 vs 2008 中成功回滚了我的合并。

我试图重新合并,它说没有变化(但有)。

这让我想起了另一个想法。当我签入我的合并时,即使我只更改了 2 个文件,它也有大约 20 个文件在签入中。现在,当我进行回滚时,它只返回了我更改为签入的 2 个文件?

4

1 回答 1

0

那是正常的 TFS 行为。这就是 TFS 回滚的工作原理,TFS 回滚实际上并不是“回滚”,它是一个新的变更集,用旧版本覆盖了最新版本!

您有分支 A(父)和 B(子)。您对 B 进行了一些更改,然后对 A 进行了合并。TFS 现在假定来自 B 的所有更改都存在于 A 中,并使用时间戳更新它的内部数据库。当您回滚 A(父)中的更改时,它不会更改 TFS 对其内部数据库的更新。TFS 只是认为这是一个新的变化!所以对于 TFS,B 和 A 之间没有变化,因为自上次合并以来 B 没有任何变化!说得通?

“当我签入合并时,即使我只更改了 2 个文件,它也有大约 20 个文件在签入中。现在,当我进行回滚时,它只给我返回了我更改为签入的 2 个文件?”

当您说合并显示 20 个文件时 -> 如果您打开合并变更集,您实际上可以看到哪些所有文件都得到了编辑,哪些文件刚刚被合并。针对更改集中的每个文件,都会有一个条目说“合并,编辑”/“合并”/“分支”/“删除”等。这些会告诉你特定文件的合并到底发生了什么。

在您的情况下,我假设您在这 18 个文件旁边有“合并”。重命名是我见过的最常见的原因。有许多可能的原因。这不是一个完整的列表:

  • 您对标记为“合并”的文件的父文件夹执行了命名空间操作(删除、取消删除、重命名)
  • 您执行了已在目标分支中执行的命名空间操作(删除、取消删除、重命名)
  • 您执行了一系列命名空间操作,这些操作合并为无操作(例如删除 + 取消删除,或重命名 a -> b -> a)
  • 存在未解决的冲突
  • 你执行弃牌
于 2013-07-23T19:39:51.413 回答