【问题标题】:hg diff ignore ^Mhg 差异忽略 ^M
【发布时间】:2017-07-03 16:40:26
【问题描述】:

我正在使用 Android Studio 2.2.3 和 Mercurial 分布式 SCM(版本 4.0.1),在 MacOS Sierra 10.12.3 上运行。

我正在使用 Hg 命令库客户端。 hg diff 显示:

这是我的 ~/.hgrc

 [extensions]
 purge=
 color =
 pager =

 [pager]
 pager = LESS='FRSXQ' less
 quiet = True
 attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog

我应该添加任何配置以避免在差异中显示^M?在 Android Studio 或 Mercurial 配置中?谢谢。

【问题讨论】:

    标签: android-studio mercurial eol


    【解决方案1】:

    答案取决于你想要什么:

    a) 是否只是 不想看到 whitspace / eol 字符更改以便您可以更好地查看差异?然后在 diff 命令中使用适当的标志:hg diff -b 显示差异,同时忽略包括 EOL 在内的空白更改。

    b) 如果您通常有这个问题,并且想要在存储库端帮助弄乱 EOL 字符:使用 EOL 扩展。但是,更可取的方法是使用正确配置的编辑器和可能会拒绝具有错误 EOL 字符的文件的存储库挂钩。

    【讨论】:

    • 我可以接受您在 (a) 中的建议以忽略空格更改,但我也担心 (b)。我们有 2 名开发人员在同一个存储库上工作。我在 MacOS 上使用 Android Studio,另一个队友在 Windows 上使用 Android Studio。这里有 Android Studio 设置的经验,所以它不应该在 MacOS 和 Windows 之间发生冲突吗?谢谢!
    • 仅供参考 hg diff -b 在行尾仍显示 ^M。这些代码行是新添加的,但不会修改任何现有代码行。
    • 可能是因为我的pager extension 配置?注释掉 .hgrc 中的 pager extension 修复我的问题,不再在 EOL 显示 ^M
    • 我不这么认为...我也启用了寻呼机扩展:paste.openttdcoop.org/pwoydfwkd 但是,是的,当同一行中还有其他差异时,它们仍然会显示。 diff -b 仅忽略纯空格/EOL 的更改。
    【解决方案2】:

    使用 EOL 扩展。在盲目启用之前仔细阅读https://www.mercurial-scm.org/wiki/EolExtension

    【讨论】:

    • 我只能强调:最好不要忽略更改,而是让您的提交者使用正确配置的编辑器。如果您只想在查看差异时忽略这些空白更改,请使用 hg diff -b
    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 2011-02-05
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多