2012-09-28 66 views
1

我在我的Mercurial存儲庫中有兩個非常大的項目。
我正在將它們兩個重構爲較小的子項目。
這涉及到將源項目集從父項目目錄移動到子項目的子目錄中。
對於大多數文件,我只是將它們移動。
對於某些文件,我也必須進行更改。
在我提交我的重構更改之前,我想查看我對任何源文件所做的任何編輯。在GUI工具SourceTree中 - 它顯示我的任何修改(除了指示文件已被移動/重命名)。有什麼方法可以確定哪些文件也是從Mercurial命令行修改的?Mercurial移動跟着差異

這裏是一個具體的例子是什麼我談論:

iphonedev:EveryScape cdoucette $汞柱狀態-C工程/的iOS/ESSDK/src目錄/ ESSDK - 雜項/ ESDataManagerInMemory.m
一個工程/ iOS版/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m 工程/的iOS/ESSDK/src目錄/ ESDataManagerInMemory.m

我如何比較舊的版本與當前的工作副本在不同的位置?

如果我只是這樣做:

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

它讓我看到文件的全部內容(因爲在技術上它是在新位置添加)。

相反,我想之間差異:

  1. 工程/的iOS/ESSDK/src目錄/ ESDataManagerInMemory.m(倉庫的副本 - 以前的版本)
  2. 工程/的iOS/ESSDK/src目錄/ ESSDK,雜項/ESDataManagerInMemory.m(工作副本)

我也搜索過類似的問題。這篇文章很接近 - 但似乎只有在我繼續並承諾修改之後纔有意義。相反,我想在提交之前查找並檢查我的更改。
Mercurial diff not working after move/rename

回答

1

我想劇本它是這樣的:

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

diff <newfilename> oldfile.oldrev