Ошибка "хранилище не локально" при обновлении HG
Я пытаюсь обновиться до последних внесенных изменений в Mercurial на репо, который наша команда использовала некоторое время.
C:\code\printlogix\templates-dev>hg update --clean
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
getting changed bfiles
abort: repository 'https://printlogix.kilnhg.com/Code/Repositories/Templates/templates-dev' is not local
C:\code\printlogix\templates-dev>
Не уверен, что означает это сообщение "репозиторий xxxx не локальный", я никогда раньше такого не видел.
Для справки я на TortoiseHg 2.5.1 (с Mercurial 2.3.2) на Windows 7 x64. Мы также используем расширение KilnBfiles.
4 ответа
Длинный выстрел, но у меня была эта проблема (hg v 2.4.2), я посмотрел на выходные данные отладки и обнаружил следующее.
calling hook preupdate.eol: <function preupdate at 0x000000000263A048>
lock: reading lock data from c9a8f1b931da
lock: reading d:\kev\htmapp\.hglocks@c9a8f1b931da <---- RELEVANT CLUE
using https://code.google.com/p/htmapp/
sending capabilities command
code.google.com certificate successfully verified
Traceback (most recent call last):
File "mercurial\dispatch.pyo", line 88, in _runcatch
File "mercurial\dispatch.pyo", line 741, in _dispatch`
Я использовал расширение hglocks и после проверки документов на сайте обнаружил, что оно несовместимо с чем-то более новым, чем 2.3. Отключено расширение и проблема решена.
Сообщение Mercurial в этом случае не является действительно описательным. Это помогает использовать hg --debug -vvv --traceback
для вашей команды convert, чтобы получить больше деталей.
Удалите -R из вашей командной строки
из этого
hg pull -R URL -rREVISION
к этому
hg pull -rREVISION URL
В Windows вам необходимо настроить TortoiseHG/Mercurial для использования TortoisePlink для поддержки SSH. Подробности здесь:
https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Mercurial
Краткая версия: добавьте строку, подобную следующей, в раздел [UI] вашего файла mercurial.ini.
ssh = "C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -batch -C
Затем выйдите из системы и вернитесь обратно. Не уверен, почему это необходимо, но я не мог получить mercurial, чтобы получить изменение mercurial.ini, пока я не сделал это.
Например, мой файл mercurial.ini выглядит так:
# Generated by TortoiseHg settings dialog
[extensions]
mq =
rebase =
transplant =
hgsubversion = C:\Users\rsyring\dev\3rdparty\hgsubversion\hgsubversion
eol =
[ui]
username = Randy Syring <me@nospam.com>
ssh = "C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -batch -C