在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 ,它们必须同时被所有开发人员启用和使用
我听说有关尖叫,哭泣和发脾气,这个扩展相关,从Windows用户大多数,坏从来没有机会使用它在自己的实际工作(我是Winboy和与Winboys沟通)