1

我的 Mercurial 存储库中有两个非常大的项目。
我正在将它们都重构为更小的子项目。
这涉及将源集从父项目目录移动到子项目的子目录中。
对于大多数文件,我只是移动了它们。
对于某些文件,我还必须进行更改。
在我提交重构更改之前,我想回顾一下我对任何源文件所做的任何编辑。在 GUI 工具 SourceTree 中 - 它向我显示了任何修改(除了指示文件已被移动/重命名)。有什么方法可以确定 Mercurial 命令行还修改了哪些文件?

这是我正在谈论的一个具体示例:

iphonedev:EveryScape cdoucette$ hg status -C Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m
A Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m Engineering/iOS/ESSDK/src/ESDataManagerInMemory。米

如何将旧版本与不同位置的当前工作副本进行比较?

如果我这样做:

hg diff Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m

它向我显示了文件的全部内容(因为从技术上讲,它已添加到新位置)。

相反,我想区分:

  1. Engineering/iOS/ESSDK/src/ESDataManagerInMemory.m(存储库副本-以前的修订版)
  2. Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m(工作副本)

我确实搜索过类似的问题。这篇文章很接近 - 但似乎只有在我继续并提交我的更改时才有意义。相反,我想在提交之前找到并查看我的更改。
移动/重命名后,Mercurial diff 不起作用

4

1 回答 1

1

我会这样编写脚本:

hg cat -r <oldrev> <oldfilename> > oldfile.oldrev

diff <newfilename> oldfile.oldrev
于 2012-09-28T23:05:49.727 回答