在LInux上,mercurial忽略创build/修改date的变化

在Windows上,只要文件本身没有改变,Mercurial就会忽略文件的创build/执行时间。 Linux显然不能做到这一点。 在我的工作中,有些人在Windows上工作,有些人在Linux上工作,而且我们在mercurial上有很多误报。

很好的例子是当我们从YML文件重新生成Doctrine模型的时候。 他们大多数保持不变,变化是在一两个,但都得到了再生,我必须通过所有的人,并确保它是安全的忽略他们的变化(恢复),所以他们不会搞乱mercurial承诺。

有什么办法可以让Linux像Windows那样看到这些文件?

顺便说一句:我已经检查过,它与EOL问题或UTF-8 BOM或其他隐藏字符无关。 只有时间戳发生变化。

提前致谢!

那么,如果mtime是唯一的变化,Linux上的Mercurial不会提交一个文件:

 〜$ mkdir测试
 〜$ cd test /
 〜/ test $ hg init
 〜/ test $ echo a> a
 〜/ test $ ls -l 
总共4
 -rw ------- 1个用户用户2 7月23日13:21 a
 〜/ test $ hg add a
加入一个
 〜/ test $ hg commit -m“添加一个”
一个
提交的变更集0:e7d3dddff169
 〜/ test $ ls -l 
总共4
 -rw ------- 1个用户用户2 7月23日13:21 a
 〜/ test $ touch a
 〜/ test $ ls -l 
总共4
 -rw ------- 1个用户用户2 7月23日13:22 a
 〜/测试$ hg状态
 〜/ test $ hg commit -m“Mtime改变了”a
没有改变
 〜/ test $

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

 〜/ test $ ls -l
总共4
 -rw ------- 1个用户用户2 7月23日13:22 a
 〜/ test $ rm a
 rm:删除常规文件'a'?  ÿ
 〜/ test $ echo a> a
 〜/ test $ ls -l
总共4
 -rw ------- 1个用户用户2 7月23日14:27 a
 〜/测试$ hg状态
 〜/ test $ hg commit -m“Ctime改变了”a
没有改变
 〜/ test $

Remi的回答的结果的后果

在跨平台开发中,您遇到与EOL有关的真正麻烦

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

  • 忽略“这被认为是最后的手段”的警告 – 你没有另一种好方法,因为“…如果外部因素决定了这些功能对使用Mercurial是强制性的,那么它们是可用的…”
  • 仔细阅读扩展说明,特别注意题目,标题与文字中的重要(否则除了旧的,你会得到很多 额外的头痛)
  • 为您的用例正确配置扩展

我听说有关尖叫,哭泣和发脾气,这个扩展相关,从Windows用户大多数,坏从来没有机会使用它在自己的实际工作(我是Winboy和与Winboys沟通)