Mercurial: "Неисследованный файл в рабочем каталоге отличается от файла в запрошенной ревизии"?

Может ли кто-нибудь сказать мне, что означает эта Меркуриальная ошибка?

untracked файл в рабочем каталоге отличается от файла в запрошенном пересмотр

Это произошло при выполнении hg fetch:

C:\myapp>hg fetch ssh://hg/myapp-v1
pulling from ssh://hg/myapp-v1
searching for changes
adding changesets
adding manifests
adding file changes
added 93 changesets with 693 changes to 78 files (+1 heads)
updating to 797:0df7dbe7dc06
196 files updated, 0 files merged, 196 files removed, 0 files unresolved
merging with 704:edb7765768c6
abort: untracked file in working directory differs from file in requested revision: 'a/b/c/d.java'

Из того, что я могу сказать, этот файл (a/b/c/d.java) не соответствует ни одному пути, настроенному в .hgignore. И этот конкретный файл также идентичен в двух (myapp и myapp-v1) репозиториях.

Я не понимаю, что это значит.??

Ответ 1

Сообщается, что у вас уже есть файл с именем a/b/c/d.java в локальном рабочем каталоге myapp repo, но он не был добавлен (отслеживается), и выборка не желает перезаписывать его при обновлении/слиянии.

Вещи, которые вы можете сделать, это эфир:

  • Отключите свою копию a/b/c/d.java, а затем выполните команду pull/update. После этого сравните переносимый a/b/c/d.java с тем, который вызывается при извлечении.

или

  • hg add a/b/c/d.java, hg commit a/b/c/d.java, а затем pull/merge

Первое работает, потому что больше нет файла на пути, а позже работает, потому что ваша копия отслеживается, поэтому Mercurial может объединить их.

Кроме того, вам стоит остановиться на использовании fetch. Он объединяет pull и update и merge для вас, что просто не является безопасным способом быть. В этом случае ваш pull преуспел, и оба update и merge предоставили вам гораздо более полезные сообщения.

Ответ 2

Я обошел это, запустив hg update --clean

Ответ 3

Я попробовал Ry4an ответить (об удалении файла), и он все еще не работает, поэтому я запустил чистку и избавился от всех следов, с которыми он работал. На всякий случай кто-то ищет альтернативное решение.

Ответ 4

Просто примите диалог ошибки, а затем отметьте Discard local changes, no backup

введите описание изображения здесь

И вам должно быть хорошо, он перезапишет любые невоспроизводимые локальные файлы...

Ответ 5

При использовании TortoiseHG вы можете проверить параметр "Отменить локальные изменения, без резервного копирования" в окне "Обновление".