mercurial忽略LInux上的创建/修改日期更改

时间:2013-07-23 09:23:41

标签: linux mercurial

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

很好的例子是我们从YML文件重新生成Doctrine模型。他们中的大多数保持不变,变化是一两个,但都得到了重生,我必须经历所有这些并确保,忽略他们的变化(恢复)是安全的,所以他们不会搞砸mercurial提交。

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

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

提前致谢!

2 个答案:

答案 0 :(得分:2)

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

~ $ mkdir test
~ $ cd test/
~/test $ hg init
~/test $ echo a > a
~/test $ ls -l 
total 4
-rw------- 1 user users 2 Jul 23 13:21 a
~/test $ hg add a
adding a
~/test $ hg commit -m "Adding a"
a
committed changeset 0:e7d3dddff169
~/test $ ls -l 
total 4
-rw------- 1 user users 2 Jul 23 13:21 a
~/test $ touch a
~/test $ ls -l 
total 4
-rw------- 1 user users 2 Jul 23 13:22 a
~/test $ hg status
~/test $ hg commit -m "Mtime changed on a" a
nothing changed
~/test $

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

~/test $ ls -l
total 4
-rw------- 1 user users 2 Jul 23 13:22 a
~/test $ rm a
rm: remove regular file ‘a’? y
~/test $ echo a > a
~/test $ ls -l
total 4
-rw------- 1 user users 2 Jul 23 14:27 a
~/test $ hg status
~/test $ hg commit -m "Ctime changed on a" a
nothing changed
~/test $

答案 1 :(得分:1)

对Remi的回答的评论的后果

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

在这种情况下团队成员的唯一可能最佳朋友是EOL Extension,必须同时启用并由所有开发人员使用

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