20 сент. 2011 г.

abort: requirement 'dotencode' not supported! mercurial error

Надоело мне искать каждый раз, когда кто-то создаст репозиторий со своей машины (на данный момент серверная версия hg не поддерживает dotencoded хранилищ), как исправить эту ситуацию, поэтому оформлю заметку тут. Раз и навсегда.


Эта ошибка вылазит после попытки выполнить, например, такую команду: hg log (лог ревизий репозитория). Также с нашего web-интерфейса не были видны вновь созданные репозитории. Ответ воистину на поверхности: кто-то создавал репозитарий в офисе (внутри офиса настроен samba-сервер, в директории которого лежат репозитории hg, нам это удобнее, т.к. так скорость доступа выше) и версия репозитория была dotencoded. Тогда как на сервере стоит версия, которая не поддерживает dotencoded-репозитариев, конечно же, их не было видно через http.
Решение проблемы тут: RequiresFile
Надо просто взять и выполнить следующую команду с помощью версии hg, которая поддерживает dotencoded-репозитарии:

hg --config format.dotencode=0 clone --pull repoA repoB
где repoA - ваш репозитарий, который выдает dotencoded-ошибку,
repoB - исправленный, который будет работать на старой версии, которая не поддерживает dotencoded-репозитарии.
Вот так-то!

В заключение, хочу сказать, что надо поставить на сервер новую версию hg да и все. Проблем-то.

Комментариев нет:

Отправить комментарий