2010-10-11 79 views
1

我在我們的mercurial存儲庫中使用分支,並注意到在單獨的分支中完成的重命名不會在預先提交後顯示合併到默認分支。但是,在發出hg diff -g命令後提交後,它會正確顯示重命名。hg diff -g在合併(預提交)和更改日誌(提交後)之間顯示不同的輸出

以下代碼片段顯示了我的意思。正在創建一個新的存儲庫。我默認創建一個文件。然後我創建了一個名爲branch-one的分支。我重命名分支1中的文件並將此更改合併回默認值。在提交默認設置之前,我會做一次比較以查看更改內容,並注意它沒有選擇重命名,而是報告刪除和添加。但提交後,我再次檢查差異,這次重命名被正確報告。

有沒有辦法讓差異報告正確之前的提交?

D:\hgsource>hg init SO-question 

D:\hgsource>cd SO-question 

D:\hgsource\SO-question>echo test file content > test.txt 

D:\hgsource\SO-question>hg commit -A -m "first commit" 
adding test.txt 

D:\hgsource\SO-question>hg branch branch-one 
marked working directory as branch branch-one 

D:\hgsource\SO-question>hg rename test.txt new-file.txt 

D:\hgsource\SO-question>hg status 
A new-file.txt 
R test.txt 

D:\hgsource\SO-question>hg commit -m "renamed file in branch-one" 

D:\hgsource\SO-question>hg update default 
1 files updated, 0 files merged, 1 files removed, 0 files unresolved 

D:\hgsource\SO-question>hg merge branch-one 
1 files updated, 0 files merged, 1 files removed, 0 files unresolved 
(branch merge, don't forget to commit) 

D:\hgsource\SO-question>hg diff -g 
diff --git a/new-file.txt b/new-file.txt 
--- /dev/null 
+++ b/new-file.txt 
@@ -0,0 +1,1 @@ 
+test file content 
diff --git a/test.txt b/test.txt 
deleted file mode 100644 
--- a/test.txt 
+++ /dev/null 
@@ -1,1 +0,0 @@ 
-test file content 

D:\hgsource\SO-question>hg commit -m "merged from branch-one" 

D:\hgsource\SO-question>hg diff -c tip 
diff --git a/test.txt b/new-file.txt 
rename from test.txt 
rename to new-file.txt 

我在Windows XP上的版本1.6.3上。

回答

1

注:差異可能會產生意外結果合併,因爲它會如果指定 默認爲對工作目錄的第一個父 變更比較沒有修訂。

http://linux.die.net/man/1/hg

+0

這說明了其行爲。謝謝。所以爲了得到差異,我想說一個代碼審查工具,我應該能夠在我的分支返回默認值時進行比較: hg diff -r default – 2010-10-11 05:15:20

相關問題