Mercurial之后是差异化

时间:2012-09-28 17:55:27

标签: mercurial

我的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   工程/式IO / ESSDK / SRC / ESDataManagerInMemory.m

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

如果我这样做:

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(工作副本)
  3. 我确实搜索过类似的问题。这篇文章很接近 - 但似乎只有在我继续并做出改变时才有意义。相反,我想在提交之前找到并审查我的更改 Mercurial diff not working after move/rename

1 个答案:

答案 0 :(得分:1)

我会像这样编写脚本:

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

diff <newfilename> oldfile.oldrev