Mercurial: "неотслеживаемый файл в рабочем каталоге отличается от файла в запрашиваемой ревизии"? - PullRequest
77 голосов
/ 28 января 2011

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

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

Это произошло при выполнении 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) репозиториях.

Мне не ясно, что это вообще означает.??

Ответы [ 5 ]

81 голосов
/ 28 января 2011

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

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

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

или

  • hg add a/b/c/d.java, hg commit a/b/c/d.java, а затем вытащить / объединить

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

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

24 голосов
/ 06 июля 2016

Я справился с этим, запустив hg update --clean

8 голосов
/ 22 ноября 2016

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

enter image description here

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

8 голосов
/ 02 июля 2015

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

3 голосов
/ 10 октября 2016

Если вы используете TortoiseHG, вы можете выбрать опцию «Отменить локальные изменения, без резервного копирования» в окне обновления.

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