0

我将 Visual Studio 2010 与 VisualHG 和 TortoiseHg 一起使用。我注意到,如果我使用解决方案资源管理器移动或重命名文件,文件旁边会出现一个小 [R],我认为这表示“已重命名”。但是,如果我在 TortoiseHg 中提交我的更改,它不会执行重命名——它会删除旧文件并添加新文件。这会导致文件的所有历史记录都丢失(并不必要地使 repo 膨胀)。

有没有办法让它正常工作?如果 VisualHG 不能与 TortoiseHg 正确协调文件重命名,那么使用它真的没有什么好处。

另外,我应该提到 TortoiseHg 有一个“检测解决方案中的副本/重命名”对话框,但我似乎无法让它工作。首先,我似乎在 TortoiseHg Workbench 中找不到任何按钮或菜单项来启动它。其次,如果我通过输入使用终端启动,则thg guess未修订文件框中不会出现路径(并且没有明显的添加方法)。尝试此操作时,我确保已导航到正确的目录(我的解决方案目录,其中包含我的 .hg 存储库)。我也试过thg guess solution_directory_path了,但这并没有什么不同。如果此对话框是我的问题的可能解决方案,您实际如何使用它?

编辑

我终于发现您可以通过右键单击 Windows 资源管理器中的解决方案文件夹并选择 TortoiseHg > Guess Renames 来访问“检测解决方案中的副本/重命名”对话框。但是,当我再次执行此操作时,未修订文件框中没有出现任何路径,因此我仍然无法开始使用此对话框。(即,我什至无法执行这些说明中的第 1 步。)

编辑 2

我在 VisualHG CodePlex 问题页面上发现了一个错误报告,我认为可以解释我遇到的问题:https ://visualhg.codeplex.com/workitem/99 。不过,我有点惊讶它没有得到更多的选票。

4

1 回答 1

0

经过进一步调查,我意识到,即使文件在 TortoiseHg Workbench 中显示为已删除/添加,但实际上它们正确重命名。

如果您在 Workbench 中单击旁边带有“+”的文件,如果该文件实际上是重命名文件,则代码窗口的标题将显示如下内容:

Project/Folder/RenamedFile.cs (从 Project/Folder/OriginalFile.cs 重命名)

在阅读了更多关于 Mercurial 真正在做什么之后,听起来它实际上是在删除和添加,只是添加的文件保留了对原始文件的引用,因此您仍然可以跨重命名查看历史记录。

我不确定这是否解释了我在“检测解决方案中的副本/重命名”时遇到的问题,但我现在对重命名得到正确处理感到满意。

于 2013-05-25T19:28:20.503 回答