【问题标题】:Mercurial + MQ EOL behaviourMercurial + MQ EOL 行为
【发布时间】:2011-08-04 10:59:26
【问题描述】:

我正在使用 mercurial+mq,在 Win+OSX 上,EOL 问题正在扼杀我。 我已经激活了 EOL 扩展,添加了 .hgeol,如下所示:

[patterns]
**.sln = CRLF
**.vcproj = CRLF
**.vcxproj = CRLF
**.vcproj.filters = CRLF
**.vcxproj.filters = CRLF
**autoexp.dat = CRLF
**Makefile = LF
** = native

一切似乎都在 Windows 上运行良好 ..(好吧,我有一些文件存在行尾问题,我在第一个补丁中修复了它们,其中也包含 .hgeol)。

然后我搬到了 Mac,假设它也可以在那里工作,对吗?嗯,错了。当我 qpush 第一个补丁(带有“.hgeol”文件+行尾更改的补丁)时,它可以工作,但我看到一组“修改”文件(它与我在 Windows 上“修复”的文件完全相同,这样它们就不再显示为已修改!)。无论如何,我尝试“hg qrefresh”以更改线路(我想我稍后会弄明白)......但没有运气:如果我继续 qpush 我的其他补丁,我开始收到拒绝:(

知道如何解决这个问题/是什么原因造成的?快把我逼疯了……

【问题讨论】:

    标签: mercurial eol mercurial-queue


    【解决方案1】:

    让我们同意编译器知道如何处理任何新的行格式,甚至是混合。 所以,我的建议是:

    1. 保留 Windows 特定文件(.sln.vcproj 等)以按照您的方式进行设置
    2. 确保所有文本编辑器(所有操作系统)同意SAME ONE换行约定。
    3. 将您使用文本编辑器接触的所有文件转换为新的行约定(使用类似 dos2unix 的工具)
    4. 提交更改
    5. 您现有的所有补丁也应该遵守这一点

      一个。您可能需要一一应用它们,然后再次清理文件并刷新这些补丁,以便也修复换行符

    在这之后你应该会很好只要你

    1. 不要用不同的不合规编辑器编辑同一个存储
    2. 通过来自不同操作系统的共享访问相同的存储库,并且不知何故使用了错误的编辑器...

    希望这会有所帮助;)

    问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      相关资源
      最近更新 更多