TFS版本控制 - 文件被删除,添加 - 我们如何告诉TFS这是一个移动?

Dav*_*len 9 version-control resharper tfs refactoring visual-studio

我们正在进行一些重大的重构,在此过程中我们正在移动大量文件.我们使用ReSharper使这(相对)无痛,因为它在我们移动文件时更新所有用途 - 甚至是不同的项目.一切都很棒.

除了我们今天刚刚发现ReSharper会告诉TFS删除旧位置的文件,然后在新位置插入新文件.我们如何告诉TFS这个删除/插入实际上是一个移动?

Ber*_*hen 5

我遇到了类似的情况,我想在项目之间移动文件,我想让 Resharper 做尽可能多的工作。以下是我最终做的步骤:

  1. 在 Resharper 中移动文件。这将对目标项目文件进行适当的更改。
  2. 关闭解决方案或禁用 Resharper。
  3. 在 TFS 中撤消删除/添加。
  4. 在 TFS 中移动文件。
  5. 确保移动的文件不再在源项目中。
  6. 重新加载解决方案或重新启用 Resharper。
  7. 使用 Resharper 进行任何命名空间更改。

显然,您可以一次处理多个文件。这很痛苦,但 TFS 最终会做出正确的更改,而 Resharper 负责更改引用。


Not*_*tMe 4

简短的回答:你不知道。

长答案:除非您想完全管理源代码管理,否则您不需要。

从TFS的角度来看,新位置的文件是一个完全不同的文件。它甚至在数据库服务器中具有不同的 ID。

现在您当然可以在 TFS 数据库中进行探索并尝试手动更新文件 ID 关联。但这很有可能彻底搞砸自己……除非你是 TFS 的主要开发人员之一,非常熟悉该产品的后端。那样的话你就不会问这个问题了。;)

稍微偏离主题的项目:您应该联系 jetbrains 并告诉他们解决此问题。

  • {不恰当的脏话} - 这不好。如果我们知道 ReSharper 在做什么,我们就可以使用它来进行所有编辑,然后将文件复制到其他地方,撤消签出,移动文件,签出它们,然后复制回来。但我们是后来才知道这一点的。 (2认同)