【问题标题】:mercurial ignore creation/modyfication date change on LInuxmercurial 忽略 LInux 上的创建/修改日期更改
【发布时间】:2013-07-23 09:23:40
【问题描述】:

在 Windows Mercurial 上,只要文件本身没有更改,就会忽略文件的创建/修改时间。 Linux 显然无法做到这一点。在我的工作中,有些人在 Windows 上工作,有些人在 Linux 机器上工作,我们在 mercurial 中有很多误报的变化。

很好的例子是我们从 YML 文件中重新生成 Doctrine 模型。它们中的大多数保持不变,变化只有一两个,但都会重新生成,我必须检查所有这些并确保忽略它们的更改(恢复)是安全的,这样它们就不会搞砸提交。

有没有办法让 Linux 像 Windows 一样看到这些文件?

顺便说一下:我查过了,与 EOL 问题或 UTF-8 BOM 或其他隐藏字符无关。只有时间戳改变。

提前致谢!

【问题讨论】:

    标签: linux mercurial


    【解决方案1】:

    好吧,如果 mtime 是唯一的更改,Linux 上的 Mercurial 不会提交文件:

    ~ $ mkdir 测试 ~ $ cd 测试/ ~/test $ hg 初始化 ~/test $ echo a > a 〜/测试$ ls -l 共 4 个 -rw------- 1 个用户 users 2 Jul 23 13:21 a ~/test $ hg 添加一个 添加一个 ~/test $ hg commit -m "添加一个" 一种 提交的变更集 0:e7d3dddff169 〜/测试$ ls -l 共 4 个 -rw------- 1 个用户 users 2 Jul 23 13:21 a ~/test $ 触摸一个 〜/测试$ ls -l 共 4 个 -rw------- 1 个用户 users 2 Jul 23 13:22 a ~/test $ hg 状态 ~/test $ hg commit -m "Mtime changed on a" a 没有改变 〜/测试$

    如果 ctime 被更改,它也不会检测到更改:

    〜/测试$ ls -l 共 4 个 -rw------- 1 个用户 users 2 Jul 23 13:22 a 〜/测试$ rm一个 rm:删除常规文件“a”?是的 ~/test $ echo a > a 〜/测试$ ls -l 共 4 个 -rw------- 1 个用户 users 2 Jul 23 14:27 a ~/test $ hg 状态 ~/test $ hg commit -m "Ctime changed on a" a 没有改变 〜/测试$

    【讨论】:

    • 是的,不仅仅是mtime。文件从头开始重新生成。之后它们完全一样,但重新创建,所以它更像是 ctime 问题。文件已更改(从 mercurial 的角度来看)但未同时更改(从我和 Windows 的角度)。
    • 我更新了我的回复,ctime 也没有删减它。你确定文件没有变化吗?您是否尝试过校验和比较之前/之后,例如 sha256sum?
    • 感谢您到目前为止的帮助。 SHA总和不同,ctime,mtime也不同。 Diff 表明每一行都是不同的,但事实并非如此。没有换行符,没有不同的字符。没有线索;)
    • 其实我可以给你发一个示例 2 文件(之前/之后),这样你就可以自己检查了。
    • @wasil “Diff 表明每一行都不一样”意味着总是只有一个 - 你遇到了 EOL 式的问题。对于任何 SCM,它 content-change
    【解决方案2】:

    雷米回答的 cmets 的后果

    你在跨平台开发中遇到了 EOL 的真正麻烦

    唯一的可能最好的朋友在这种情况下是EOL Extension,所有开发人员必须同时启用和使用

    我从 Windows 用户那里听说了与此扩展相关的尖叫、哭泣和发脾气,糟糕的是从来没有机会在自己的实际工作中使用它(我是 Winboy,并与 Winboys 交流)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多