如何克隆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那样的自动转换概念。
答案 0 :(得分:6)
.hgeol
文件应该是存储库根目录中的文件,不应该是根目录的父文件,也不应该是用户目录中的文件,也不应该是Mercurial.ini文件中的文件。
要将其添加到现有克隆,您可能应首先使用hg update null
(或hg clone --noupdate
)删除现有的工作副本。然后,在您添加.hgeol
文件后,您可以使用hg update
恢复工作副本,此时EOL转换将生效。
我认为如果不先将文件提交到存储库,就不能将其直接添加到克隆中。