【问题标题】:VisualHG marks files with an [R] but TortoiseHg still removes/adds the files when committingVisualHG 用 [R] 标记文件,但 TortoiseHg 在提交时仍会删除/添加文件
【发布时间】:2013-05-25 02:10:39
【问题描述】:

我将 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 来访问“检测解决方案中的副本/重命名”对话框。但是,当我再次执行此操作时,未修订文件框中没有出现任何路径,因此我仍然无法开始使用此对话框。 (即,我什至无法执行these instructions 中的第 1 步。)

编辑 2

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

【问题讨论】:

    标签: visual-studio-2010 visual-studio mercurial tortoisehg visualhg


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 2010-12-14
      • 1970-01-01
      • 2020-01-09
      • 2012-03-06
      • 2011-01-29
      相关资源
      最近更新 更多