"Нет такого хранилища hgadmin" при установке mercurial-сервера - PullRequest
5 голосов
/ 01 апреля 2010

Я пытаюсь установить mercurial-сервер. После добавления ключей в keys/root и обновления аутентификации я попытался клонировать hgadmin-repo, но получаю следующую ошибку:

$ hg clone ssh://hg@<domain>/hgadmin
remote: mercurial-server: no such repository hgadmin
abort: no suitable response from remote hg!

Кто-нибудь знает в чем проблема?

Ответы [ 3 ]

7 голосов
/ 21 апреля 2010

У меня была такая же проблема, и для меня это была проблема с установкой репозитория hgadmin. Когда я установил пакет, я получил сообщения от python о том, что пакет mercurial не был установлен. Я предполагаю, что это произошло, когда mercurial-сервер попытался инициализировать репозиторий hgadmin. Поэтому, когда я отправился в магазин hgadmin, там не было каталога .hg:

root@myshost:/var/lib/mercurial-server/repos# cd hgadmin/
root@myshost:/var/lib/mercurial-server/repos/hgadmin# ls -a
.  ..

Чтобы решить эту проблему, я сделал:

easy_install mercurial
sudo apt-get purge mercurial-server
sudo rm -rf /var/lib/mercurial-server
sudo apt-get install mercurial-server

А затем продолжил с указаниями здесь:

http://kurtgrandis.com/blog/2010/03/20/gitosis-for-mercurial/

2 голосов
/ 03 декабря 2012

Большое спасибо Рэнди за разоблачение точной проблемы здесь.

Я боролся с той же проблемой и нашел альтернативный подход к ее решению (без необходимости очистки и повторной установки).

Вы можете инициализировать репозиторий hgadmin вручную и установить хуки, достигая того же эффекта, что и при обычной установке. Вы должны сделать это как пользователь 'hg'.

Процедура

Команды работали для моей среды (Ubuntu 10.04.4 / Hg 1.4.3)

Сначала инициализируйте ртутный репозиторий в / var / lib / mercurial-server / repos / hgadmin :

$ sudo su hg
$ cd ~/repos/hgadmin/
$ hg init

Тогда единственное отличие, которое я обнаружил в нормально инициализированном репозитории hgadmin (которое я развернул на виртуальной машине для сравнения), - это хуки в файле .hg / hgrc . Итак, откройте файл:

$ vim .hg/hgrc

и вставьте это точное содержание:

# WARNING: when these hooks run they will entirely destroy and rewrite
# ~/.ssh/authorized_keys

[extensions]
hgext.purge =

[hooks]
changegroup.aaaab_update = hg update -C default > /dev/null
changegroup.aaaac_purge = hg purge --all > /dev/null
changegroup.refreshauth = python:mercurialserver.refreshauth.hook
0 голосов
/ 02 апреля 2010

Вы уверены, что ваш синтаксис команды клона правильный? Я вижу в нем как минимум две ошибки:

  1. Вы должны поставить репо, которое клонируете (не только пункт назначения)
  2. Как и для push, перед hgadmin вы должны использовать две косые черты:

Пример FAILING (отсутствует репо источника и используется только один '/' перед 'home')

 $ hg clone ssh://John@127.0.0.1/home/John/delme

Пример FAILING (отсутствует репо-источник)

 $ hg clone . ssh://John@127.0.0.1/home/John/delme

Пример SUCCEEDING :

 $ hg clone . ssh://John@127.0.0.1//home/John/delme
...