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

时间:2011-06-24 07:43:23

标签: mercurial dvcs tortoisehg

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

  1. 关闭eol扩展程序并还原文件
  2. 手动删除文件并从头版修订中更新。
  3. 每天这样做很烦人(每天两次......三次......),特别是在变大的时候!请帮助找出问题的原因。

1 个答案:

答案 0 :(得分:7)

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

至于您所看到的问题,从this series of emails开始,eol扩展程序使用LF作为其默认的存储库编码,这可能是Mercurial认为你创建的Windows,CRLF结尾文件已经改变。要更改此设置,请将以下部分添加到.hgeol文件中:

[repository]
native = CRLF

我尝试了以下测试,类似于我的链接(启用了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
相关问题