Назад | Перейти на главную страницу

Проблемы с обновлением сервера Mercurial

У меня есть центральный сервер для моих репозиториев 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