将Mercurial UNIX Line Endings转换为Windows

Ric*_*ler 5 mercurial eol

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

这类似于这个问题 在Mercurial中配置eol扩展的问题

但我遗漏了一些似乎在我的电脑上无法正常工作的东西.

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

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

所以我试着像在SVN中那样找到处理这个的选项.

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

[extensions]
eol =
Run Code Online (Sandbox Code Playgroud)

我删除了存储库并再次检查了它.没变.

再看一些我看到我可能需要一个.hgeol文件.所以我在%USERPROFILE%文件夹中创建了一个

[patterns]
** = native
Run Code Online (Sandbox Code Playgroud)

删除并重新克隆存储库,该文件仍然具有LF而不是CRLF.

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

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

Lau*_*lst 6

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

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

我不认为你可以直接将它添加到克隆,而无需先将文件提交到您的存储库.