2012-05-29 51 views
5

如何克隆Mercurial存儲庫,以便我的工作副本始終具有CRLF行結尾?將Mercurial UNIX行結束符轉換爲Windows

這類似於這個問題 Problems configuring eol extension in Mercurial

但我失去了一些東西,它似乎並沒有在我的電腦上工作。

我是新來的已經使用SVN(TortoiseSVN的)好幾年了水銀。 我安裝TortoiseHG,我與布萊恩奧沙利文的水銀工作:權威指南書。

的第一件事情我做那麼一個是克隆我的機器上他的樣本庫,發現該文件有LF結尾,而不是Windows的CRLF版本。

所以我試圖找到處理此我在SVN做的選擇。

我在%USERPROFILE%\ Mercurial.ini中創建了一個文件,內容如下。

[extensions] 
eol = 

我刪除了存儲庫並再次檢出。不用找了。

環顧更多我看到我可能需要一個 .hgeol文件。所以,我創建了一個在%USERPROFILE%文件夾

[patterns] 
** = native 

刪除,再克隆庫,文件仍然有LF的,而不是CRLF。

然後我再次嘗試將 .hgeol文件放在存儲庫的父目錄中,最後將該命令放入Mercurial.ini文件中。我也嘗試用CRLF替換原生。

我必須失去了一些東西,因爲它看來,這應該是所有我需要得到它的工作。也許我錯過了像SVN這樣的自動轉換的概念。

回答

6

.hgeol文件應該是存儲庫根目錄中的文件,而不是在根目錄的父目錄中,也不在用戶目錄中,也不在Mercurial.ini文件中。

要將其添加到現有的克隆,可能應先刪除現有的工作副本hg update null(或hg clone --noupdate)。然後,一旦添加了.hgeol文件,您就可以使用hg update返回工作副本,此時EOL轉換將生效。

我不認爲你可以直接將它添加到克隆不首先將文件提交到存儲庫。

+0

今天早上我會試試這個。 –

+0

工作。我曾嘗試將.hgeol文件放在工作目錄中,但我無法克隆它,因爲文件夾不是空的。 我認爲這有助於我的理解,因爲當我克隆我的修改克隆時,我得到原始的LF結束。這告訴我它只查看.HG文件夾中的信息,並查看工作文件夾中的內容。 這可能不是問題,因爲在我自己的(公司)存儲庫中,我們將從頭開始設置選項。只有那些我不能控制並且沒有包括這個選項的人,我需要這樣做。 –

相關問題