Mercurial将未修改的文件标记为在工作目录中修改并且无法还原

ILy*_*gan 7 mercurial dvcs tortoisehg

我们的团队在Windows上使用TortoisHg 2.0.5并在工作目录中刷新文件列表之后有时(至少每天一次:(()显示修改后的未修改文件列表.手动比较不显示代码中的任何更改,行休息也是平等的.恢复这些"fantom"文件不会导致任何结果.我们处理这个问题有两种方式:

  1. 关闭eol扩展并恢复文件,
  2. 手动删除文件并从头版本更新它们.

每天这样做(两次......三次......每天)真的很烦人,特别是在变大的时候!请帮助找出问题的原因.

sha*_*tor 7

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

至于您所看到的问题,从这一系列电子邮件中,它看起来像eol扩展程序使用LF的默认存储库编码,这可能使Mercurial认为您创建的Windows,CRLF结尾文件已更改.要更改此设置,请将以下部分添加到您的.hgeol文件中:

[repository]
native = CRLF
Run Code Online (Sandbox Code Playgroud)

我尝试了以下测试,类似于我链接中的测试(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
Run Code Online (Sandbox Code Playgroud)