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 вы можете проверить параметр "Отменить локальные изменения, без резервного копирования" в окне "Обновление".