Mercurial将未修改的文件标记为在工作目录中已修改,并且无法恢复

Mercurial将未修改的文件标记为在工作目录中已修改,并且无法恢复,mercurial,dvcs,tortoisehg,Mercurial,Dvcs,Tortoisehg,我们的团队在Windows上使用TortoisHg 2.0.5,在刷新工作目录中的文件列表后,它有时(至少每天一次:(())会将未修改的文件列表显示为已修改。手动比较不会显示代码中的任何更改,换行符也相同。还原这些“fantom”文件不会导致任何结果。处理此问题有两种方法: 关闭eol扩展名并恢复文件 手动删除文件并从头部修订中更新它们 每天这样做(两次…三次…每天)真的很烦人,尤其是在大型变更集上!请帮助找出问题的原因。第一个问题是,您是否只在Windows上工作,如果是,您确定需要eol扩展

我们的团队在Windows上使用TortoisHg 2.0.5,在刷新工作目录中的文件列表后,它有时(至少每天一次:(())会将未修改的文件列表显示为已修改。手动比较不会显示代码中的任何更改,换行符也相同。还原这些“fantom”文件不会导致任何结果。处理此问题有两种方法:

  • 关闭eol扩展名并恢复文件
  • 手动删除文件并从头部修订中更新它们

  • 每天这样做(两次…三次…每天)真的很烦人,尤其是在大型变更集上!请帮助找出问题的原因。

    第一个问题是,您是否只在Windows上工作,如果是,您确定需要
    eol
    扩展

    至于您从中看到的问题,看起来
    eol
    扩展使用
    LF
    作为其默认存储库编码,这可能使Mercurial认为您在Windows上创建的CRLF结尾文件已更改。若要更改此问题,请在
    .hgeol
    文件中添加以下部分:

    [repository]
    native = CRLF
    
    我尝试了以下测试,与我链接中的测试类似(启用了
    eol
    扩展):


    您试过运行hg diff吗?输出是什么?您好,感谢您提供的邮件列表。我们的团队遇到了相同的问题,只是我们仅在Windows环境下工作。自第一次更新(克隆)以来,我们在Unix行结尾方面遇到了问题Mercurial repository的。Visual Studio表示许多文件都有CR行结尾。因此,我们考虑过Mercurial在存储库中存储具有Unix行结尾的文件,现在使用eol扩展来处理此问题。此解决方案对您有帮助吗?
    > hg init eols
    > cd eols
    # used notepad++ to save a test file "foo" with Windows line endings (CRLF)
    > hg commit -Am "added foo with CRLF"
    > hg status
    > echo [patterns] > .hgeol
    > echo ** = native >> .hgeol
    > hg status
      M foo       # spurious difference!
      ? .hgeol
    > echo [repository] >> .hgeol
    > echo native = CRLF >> .hgeol
    > hg status
      ? .hgeol