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