Mercurial помечает неизмененные файлы как измененные в рабочем каталоге и не может вернуться - PullRequest
7 голосов
/ 24 июня 2011

Наша команда использует TortoisHg 2.0.5 в Windows, и после обновления списка файлов в рабочем каталоге он иногда (по крайней мере, один раз в день: (() показывает список неизмененных файлов как измененный. Сравнение вручную не показывает никаких изменений вкод, разрывы строк также равны. Возврат этих файлов "fantom" не дает результата. Существует два способа решения этой проблемы:

  1. Отключение расширения eol и возврат файлов,
  2. Вручную удаляя файлы и обновляя их из головной версии.

Это действительно раздражает делать это каждый день (дважды ... три раза ... в день), особенно на большихchangeset! Пожалуйста, помогите найти причину проблемы.

1 Ответ

7 голосов
/ 24 июня 2011

Первый вопрос: работаете ли вы исключительно под Windows, и если да, действительно ли вам нужно расширение eol?

Что касается проблемы, с которой вы сталкиваетесь, с thisсерия писем , похоже, расширение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...