2010-09-27 43 views
5

我在尝试将unix托管的Mercurial存储库克隆到Windows计算机。我希望能够使用eol扩展名,以便在克隆到Windows计算机时,服务器上带有LF结尾的文本文件具有CRLF。在Mercurial中配置eol扩展的问题

以前我用过的win32text扩展,它一直很好,但由于the general consensus似乎是在EOL扩展是要走的路,我想我给它一个镜头。

在我Mercurial.ini我有

[extensions] 
eol = 

我理解的是,默认的行为是LF转换成CRLF的克隆,但我已经清楚地错过了一些东西的,每当我从克隆Unix服务器的东西Windows,行结束仍然是LF。

任何想法?

+0

不 - 我认为这只是需要覆盖默认行为。该文件是否总是需要? – 2010-09-27 15:47:31

回答

5

继@ Geoffrey的评论,我创建了一个.hgeol文件:

[patterns] 
** = native 

这是卓有成效的,但我感到困惑。我假设启用eol扩展会默认打开这种模式处理。这是否意味着如果存储库所有者有先见之明的话,我只能从Unix服务器成功克隆克隆.hgeol文件处理Windows客户端?

+0

你总是可以自己添加'.hgeol'(如果你不想或不允许跟踪文件,可以用'.hgignore'忽略它)。如果你看一下源代码,你会发现它是通过一个repo wrapper和'pre-update'钩子来完成的,所以如果所有文件都被打开(类似于关键字扩展),你的性能就会下降。事情是大多数现代化的工具和编辑应该能够处理不同的EOL,而且你只需要指定那些不能的古代工具的文件。 – 2010-09-27 19:08:19

+0

是的 - 我添加了一个本地.hgeol,它工作正常。这一切只是感觉比需要更努力。我知道大多数编辑人员只会用LF工作,但我需要人们能够在记事本中快速打开一个文本文件,并说,当它不起作用时不会让我感到悲伤。 – 2010-09-27 23:30:11

+1

我很同情那些不得不使用记事本作为[最佳网页创作工具]的人的工作(http://blogs.msdn.com/b/oldnewthing/archive/2009/11/02/9915989的.aspx)。 – 2010-09-28 02:26:21