2011-08-04 44 views
1

我正在與Win + OSX上的mercurial + mq一起工作,並且EOL問題正在使我失望。 我已激活EOL擴展,添加.hgeol如下圖所示:Mercurial + MQ EOL行爲

[patterns] 
**.sln = CRLF 
**.vcproj = CRLF 
**.vcxproj = CRLF 
**.vcproj.filters = CRLF 
**.vcxproj.filters = CRLF 
**autoexp.dat = CRLF 
**Makefile = LF 
** = native 

,一切似乎正常工作..在Windows上(當然,我有行結束的問題了幾個文件,我固定他們在第一個補丁,也包括.hgeol的補丁)。

然後我轉移到Mac,假設它也可以在那裏工作,對吧?那麼,錯了。當我打開第一個補丁(帶有「.hgeol」文件+行結束脩改的補丁)時,它可以正常工作,但我看到一組「修改」文件(這與我在Windows上「修復」以便它們不再顯示爲已修改!)。無論如何,我試圖「hg qrefresh」爲了獲得線條的改變(想我會在後來想到)...但沒有運氣:如果我繼續qpush我的其他補丁,我開始geting拒絕:(

任何想法如何解決這一問題/是什麼原因造成的呢?它的駕駛我瘋了....

回答

0

讓我們一致認爲,編譯器知道如何處理任何新的行格式,甚至混合。 所以,我的建議是:

  1. 保留Windows的特定文件(.sln.vcproj等)被設置爲你已經做了
  2. 確保全部文本編輯器(全部操作系統)同意同一個新行規範。
  3. 轉換所有你用文本編輯器觸摸到新行約定的文件(與像工具DOS2UNIX的)
  4. 提交這一變化
  5. 您所有的現有的補丁也要堅持認爲

    一個。您可能需要通過一個應用這些之一,並再次清理文件,並刷新這些補丁所以換行符也被固定

在這之後,你應該是好的只要你

  1. 編輯同一個存儲不同uncomplying編輯
  2. 通過份額從不同操作系統訪問相同的回購和以某種方式使用一個糟糕的編輯器...

希望這有助於;)

問候。