将Mercurial UNIX Line Endings转换为Windows

时间:2012-05-29 16:16:20

标签: mercurial eol

如何克隆Mercurial存储库以使我的工作副本始终具有CRLF行结尾?

这与此问题类似 Problems configuring eol extension in Mercurial

但是我遗漏了一些似乎无法在我的电脑上运行的东西。

我是Mercurial的新手,多年来一直使用SVN(TortoiseSVN)。 我安装了TortoiseHG,我正在使用 Brian O'Sullivan的Mercurial:The Definitive Guide 一书。

所以我做的第一件事就是在我的机器上克隆他的示例存储库,发现该文件有LF结尾而不是Windows CRLF版本。

所以我试图像在SVN中那样找到处理此选项的选项。

我使用以下内容在%USERPROFILE%\ Mercurial.ini 中创建了一个文件。

[extensions]
eol =

我删除了存储库并再次检出。没有变化。

环顾四周,我看到我可能需要一个 .hgeol 文件。所以我使用

%USERPROFILE%文件夹中创建了一个
[patterns]
** = native

删除并重新克隆了存储库,该文件仍然使用LF而不是CRLF。

然后我再次尝试将 .hgeol 文件放在存储库的父目录中,最后将命令放在Mercurial.ini文件中。我也尝试用CRLF替换原生。

我必须遗漏一些东西,因为看起来这应该是我需要的全部工作。也许我错过了像SVN那样的自动转换概念。

1 个答案:

答案 0 :(得分:6)

.hgeol文件应该是存储库根目录中的文件,不应该是根目录的父文件,也不应该是用户目录中的文件,也不应该是Mercurial.ini文件中的文件。

要将其添加到现有克隆,您可能应首先使用hg update null(或hg clone --noupdate)删除现有的工作副本。然后,在您添加.hgeol文件后,您可以使用hg update恢复工作副本,此时EOL转换将生效。

我认为如果不先将文件提交到存储库,就不能将其直接添加到克隆中。