У меня есть центральный сервер для моих репозиториев Mercurial. Я только что создал новый репозиторий на сервере, используя hg init myrepo
. Версия Mercurial на сервере - 1.7.3.
Из своего клиента я использую hg clone http://myserver/myrepo
. Версия Mercurial на моей рабочей станции - 1.7.5. На моем клиенте я получаю сообщение об ошибке:
HTTP Error 500: requirement 'dotencode' not supported
Судя по моему краткому поиску этого сообщения об ошибке, мой сервер и мой клиент достаточно новые, чтобы поддерживать требование «dotencode».
Это просто отвлекающее сообщение об ошибке?
Дополнительные информации: сервер - Windows 2008R2 64-бит, клиент - Windows 7.
На самом деле у нас нет никаких "отвлекающих сообщений об ошибках" в Mercurial ... :-)
Ошибка очевидна и означает, что версия Mercurial, используемая на сервере, слишком старая для чтения репозитория на диске. Вы уже нашел страницу вики на requires
файл.
Поскольку вы говорите, что сервер использует версию 1.7.2, я думаю, что на сервере должна быть параллельно установлена другая версия. (Версия на клиенте здесь не имеет значения, вы можете смешивать любые две версии, когда они взаимодействуют по сети.)
Я вижу, вы перешли на Bitbucket, но если нет, то я бы посоветовал поискать на сервере вторую установку Mercurial. В поисках commands.py
должен найти тот, который используется веб-сервером, и поиск library.zip
должен найти более новый, используемый TortoiseHg (при условии, что вы использовали его для его установки).
Отрывок из вики HG:
Если более старая версия Mercurial пытается получить доступ к репозиторию, созданному более новой версией Mercurial, появляется сообщение об ошибке, например
abort: требование dotencode не поддерживается!
может отображаться, что означает, что версия Mercurial, используемая для доступа к этому репозиторию, не знает, как его интерпретировать, потому что для доступа к нему потребуются знания о возможности dotencode.
Если появляется такое сообщение об ошибке, необходимо использовать более новую версию Mercurial для доступа к репозиторию или репозиторий должен быть преобразован в более старый формат, понятный этой версии (с помощью 'hg clone --pull')
Это звучит неактуально, поскольку ваша версия клиента кажется выше, чем версия сервера (я думаю, вам следует дважды проверить это), но этот рецепт в любом случае стоит попробовать.
У меня была такая же проблема с CentOS 6
Теперь вы можете решить эту проблему, обновив mercurial на своем сервере.
Вы можете скачать последнюю версию Mercurial для большинства версий ОС здесь https://www.mercurial-scm.org/downloads
для CentOS 6 просто скопируйте соответствующую ссылку и выполните установку с ее помощью командой
sudo rpm -Uhv https://www.mercurial-scm.org/release/centos5/RPMS/x86_64/mercurial-4.9-1+2.7.14.x86_64.rpm