Mercurial marks unmodified files as modified in working directory and fails to revert

百般思念 提交于 2019-11-26 22:02:56

问题


Our team uses TortoisHg 2.0.5 on Windows and after refreshing file list in working directory it sometimes (at least once a day :(( ) shows a list of unmodified files as modified. Manual comparison doesn't show any changes in code, line breaks are also equal. Reverting of these "fantom" files causes no result. There a two way how we deal with this problem:

  1. Turning off eol extension and reverting the files,
  2. Manually removing the files and update them from the head revision.

It's really annoying to do this every day (twice ...three times... per day), especially on large changeset! Please help to find a reason of the problem.


回答1:


The first question is, are you working exclusively on Windows, and if so, are you sure you need the eol extension?

As for the problem you're seeing, from this series of emails, it looks like the eol extension uses LF as its default repository encoding, which probably makes Mercurial think your created-on-Windows, CRLF-ending files have changed. To change this, add the following section to your .hgeol file:

[repository]
native = CRLF

I tried the following test, similar to the one in my link (with eol extension enabled):

> 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


来源:https://stackoverflow.com/questions/6464824/mercurial-marks-unmodified-files-as-modified-in-working-directory-and-fails-to-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!