2011-05-18 113 views
4

Mercurial如何對文件進行修改?Mercurial如何對文件進行修改?

我問的原因是因爲當我運行hg status它告訴我幾個文件被修改。 但是,當我運行hg diff時,沒有更改報告。

我有一個理論,因爲爲什麼發生這種情況:(但我不積極

我使用已Mercurial的支持內置在NetBeans當我編輯一個文件,它顯示了它作爲修飾,儘管如果我撤銷(而不是恢復)這些更改並保存它,NetBeans告訴我沒有本地更改。所以我猜測NetBeans使用差異檢查修改,而Mercurial使用其他類似修改日期

這是正確的還是別的原因?

回答

4

Mercurial不使用修改日期來確定狀態。這可以用一個簡單的實驗來驗證:

hg init 
echo "This is a test" > test.txt 
hg commit -Am "commit" 
touch test.txt 
hg status 

其執行狀態檢查是在dirstate.py的代碼。如果dirstate是不確定文件的狀態(例如,因爲只有修改時間不同,那麼它傳遞高達localrepo.status作進一步分析可見here

hg help status文本有一些線索,可以幫助:

狀態可能會出現如果權限已更改或 合併已經發生,標準的差異 格式不報告權限 變化和差異只報告改變 相對於一個合併母公司與 差異不同意。

當您運行hg diff時,是否指定了任何命令行選項?

+0

我單獨試過'hg diff',我試過'hg diff '這就是所有。 – 2011-05-18 18:58:09

+0

@John嘗試差異 - git,也許這是權限更改。 – tonfa 2011-05-18 20:16:40

2

文件的權限是否可以更改?試試hg diff --git,它顯示了支持權限和二進制文件的git風格擴展差異。默認情況下,hg diff僅顯示面板友好的差異,它們不顯示權限更改。

相關問題