5

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

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

但我错过了一些它似乎在我的电脑上不起作用的东西。

我是 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 那样的自动转换的概念。

4

1 回答 1

7

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

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

我不认为您可以在不先将文件提交到您的存储库的情况下将其直接添加到克隆中。

于 2012-05-30T10:14:50.937 回答