2009-09-10 91 views

回答

7

Mercurial實際上並沒有根據實際存儲的不同來處理文本和二進制文件。當它被要求用'hg diff','hg log -p'或當在Web界面中查看變更集時向用戶顯示差異時,它會嘗試猜測「將視覺顯示該差異是否有意義」。當它試圖使「顯示它應該顯示爲文本」這個決定時,應用的測試是「在文件的前1000字節內是否有NUL字節(0x00)

因此,您的文件不存在除了在如何顯示給用戶輸出方面以外,它們的處理方式都是不同的,但是如果你可以在那裏找到一個NUL字節,那麼你可能也會停下來。

另外,extdiff擴展可以用來完全控制diff

+1

util.binary中的測試現在在整個文件中查找NUL字節。 – 2009-09-11 20:05:01

0

你應該嘗試這些行添加到~/.hgrc

[diff] 
git=1 

的git的差異格式適用於二進制文件。

+3

我想他是說他希望將文件視爲文本而不是二進制文件。 – 2009-09-10 17:50:02

+0

是的。在這種情況下,答案是'你應該考慮在你的文件的前1000個字節中沒有任何空字節'。 – joeforker 2009-09-10 18:29:00

2

我不知道TortoiseHg的圖形部分,但如果你使用命令行,那麼--text標誌hg diff應該做的訣竅:它使Mercurial治療al l文件作爲文本。