статус hg возвращается пустым, но файл изменился - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть файл, который я скопировал поверх файла в моем репозитории hg с помощью xcopy.Я делал это буквально тысячи раз с разными файлами и никаких проблем.Когда я копирую этот конкретный файл и пытаюсь зафиксировать, я получаю сообщение «ничего не изменилось».

Файл определенно изменился.Если я открою его в Блокноте, не внесу никаких изменений, а затем сохраню его, Mercurial распознает эти изменения.Если я открою его в Notepad ++, отредактирую, отредактирую и сохраню, Mercurial распознает изменения.

Если я перезапущу процесс (копирование файлов в новое репозиторий hg и фиксация), он завершится неудачно приодна и та же точка каждый раз.Что-то есть в этих файлах, но что?Я думал, что это может быть изменение даты, так как они были точно такой же миллисекунды, но после редактирования моего скопированного файла, чтобы добавить 1 минуту к измененной дате, он все равно не работает.

Что может вызвать это?Что я должен искать?

hg status

hg status -A
C file.txt

hg commit file.txt
nothing changed

В Windows, используя Mercurial 2.2.2 без включенных расширений (известно, что расширение inotify вызывает аналогичную проблему)

1 Ответ

0 голосов
/ 23 ноября 2018

Похоже, что Mercurial (как минимум 2.2.2) проверяет файл только тогда, когда он редактируется / заменяется.Это делается путем проверки даты изменения.Поскольку мои файлы имели одинаковую метку времени, они не проверяли содержимое.

Когда я отредактировал метку времени, чтобы она изменилась, меняются только метаданные, а не сам файл.Таким образом, Mercurial не был уведомлен об изменении, поэтому он никогда не смотрел и не видел, что метка времени была другой.

Решение: изменение метки времени нового файла ПЕРЕД копированием файла (или копированием его в другое место, отредактируйте его(затем скопируйте в репозиторий) позволяет Mercurial увидеть, что метка времени изменилась, и затем проверит содержимое на предмет изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...