【问题标题】:Converting Mercurial UNIX Line Endings to Windows将 Mercurial UNIX 行尾转换为 Windows
【发布时间】:2012-05-29 16:16:19
【问题描述】:

如何克隆 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 那样的自动转换的概念。

【问题讨论】:

    标签: mercurial eol


    【解决方案1】:

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

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

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

    【讨论】:

    • 今天早上我会试一试。
    • 那行得通。我曾尝试将 .hgeol 文件放在工作目录中,但我无法克隆它,因为该文件夹不为空。我认为这有助于我的理解,因为当我克隆修改后的克隆时,我得到了原始的 LF 结束。这告诉我它只查看 .HG 文件夹中的信息,而忽略工作文件夹中的内容。这可能不是问题,因为在我自己的(公司)存储库中,我们将从头开始设置选项。只有那些我无法控制且未包含该选项的选项,我才需要这样做。
    猜你喜欢
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多