【问题标题】:Problems configuring eol extension in Mercurial在 Mercurial 中配置 eol 扩展时出现问题
【发布时间】:2010-09-27 15:42:23
【问题描述】:

我正在尝试将 unix 托管的 Mercurial 存储库克隆到 Windows 计算机。我希望使用 eol 扩展名,以便我在服务器上以 LF 结尾的文本文件在克隆到 Windows 计算机时具有 CRLF。

以前我使用过 win32text 扩展,它运行良好,但由于the general consensus 似乎是 eol 扩展是要走的路,我想我会试一试。

在我的 Mercurial.ini 中有

[extensions]
eol =

我知道默认行为是在克隆时将 LF 转换为 CRLF,但我显然错过了一些东西,因为每当我将某些东西从 Unix 服务器克隆到 Windows 时,行结尾仍然是 LF。

有什么想法吗?

【问题讨论】:

  • 否 - 我认为只需要覆盖默认行为。该文件是否始终需要?

标签: windows unix mercurial eol


【解决方案1】:

根据@Geoffrey 的评论,我创建了一个 .hgeol 文件:

[patterns]
** = native

这可以解决问题,但我很困惑。我假设启用 eol 扩展会默认打开这种模式处理。这是否意味着如果存储库所有者有先见之明包含一个处理 Windows 客户端的 .hgeol 文件,我只能从 Unix 服务器成功克隆?

【讨论】:

  • 您始终可以自己添加.hgeol(如果您不想或不允许跟踪文件,请使用.hgignore 忽略它)。如果您查看源代码,您会发现它是使用 repo 包装器和 pre-update 钩子完成的,因此如果为所有文件打开它(类似于关键字扩展名),您的性能会下降。问题是大多数现代工具和编辑器应该能够处理不同的 EOL,而您只需要为那些不能处理的古老工具指定文件。
  • 是的 - 我添加了一个本地 .hgeol 并且效果很好。这一切只是感觉比需要的更努力。我知道大多数编辑器只使用 LF 就可以正常工作,但我需要人们能够在记事本中快速打开一个文本文件,而不是在它不起作用时让我感到悲伤。
  • 我很同情那些不得不与让记事本成为Best Web Authoring Tool 的那种“人”一起工作的人。
  • 嗨 Nick 和 Geoffrey:我编写了扩展程序,很高兴你能弄清楚——请编辑 wiki 以提及这个问题,或者你甚至可以将文档补丁发送到 mercurial-devel @selenic.com 如果你愿意。至于为什么你需要一个.hgeol 文件,那是因为扩展是你在全局和所有平台上启用的东西。然后,项目可以分发为他们的需求量身定制的.hgeol 文件,即,他们需要转换的文件数量最少。
  • 感谢 Martin 的跟进,以及在扩展方面的出色工作。我知道“** = native”条目有点广泛,但它仍然“安全”吗?
猜你喜欢
  • 2011-07-25
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 2020-06-26
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多