Mercurial: remote: abort: Здесь нет хранилища Mercurial (.hg не найден)! - PullRequest
16 голосов
/ 13 декабря 2011

все

Я долго искал эту проблему и пробовал разные методы.

Я хочу сохранить свой код на сервере только через SSH. Но когда я запускаю это:

sudo hg clone -v ssh://carl@hostname//home/carl/Java/Projects/peta/

Mercurial постоянно говорит мне remote: abort: There is no Mercurial repository here (.hg not found)!. В некоторых статьях говорилось, что путь должен быть правильным и там должен быть каталог .hg. Но я проверил это несколько раз, и я уверен, что в нужном месте находится папка .hg.

Я тоже пытался

hg --config ui.remotecmd=/usr/bin/hg clone ssh://carl@hostname//home/carl/Java/Projects/peta/

Но и это не удалось. Какие еще проблемы это может быть? Спасибо.


решаемые

Я наконец-то решил проблему. Ранее я создал репозиторий на своем локальном компьютере и скопировал все файлы (включая .hg) на сервер. Сначала я пытаюсь удалить каталог .hg и создать репозиторий на сервере через ssh (hg init). Тогда hg clone работает!

Ответы [ 4 ]

29 голосов
/ 14 декабря 2011

Извлечение из hg help urls

Некоторые замечания по использованию SSH с Mercurial:

  • Для SSH требуется доступная учетная запись оболочки на конечном компьютере и копия hg вудаленный путь или заданный как remotecmd.
  • путь по умолчанию относится к домашнему каталогу удаленного пользователя.Используйте дополнительную косую черту в начале пути, чтобы указать абсолютный путь:

    ssh: //example.com//tmp/repository

thisозначает, по крайней мере, , что вы не можете использовать один и тот же URI и изменить его только на один / два слэша: по крайней мере один путь будет отсутствовать.

Следствие кавычкии сообщение об ошибке: вы должны отладить (с помощью любого ssh-инструмента) и найти правильный путь к нужному каталогу.Вы можете:

  • использовать scp (fe) и скопировать известный файл из известного местоположения
  • SSH на удаленный хост в интерактивном сеансе и проверить путь (оба?) вручную, то есть: ssh..., cd ..., pwd, проверьте вывод pwd
  • ... любого другого отладчика

Когда вы получите правильный путь после входа в систему, вы должны проверитьследующая точка отказа - права доступа .hg dir

После проверки этих контрольных точек вы получите клон и некоторый бонус в форме понимания «Что случилось раньше»

HTH

1 голос
/ 13 декабря 2011

Я не знаю, действительно ли это помогает, но, согласно FAQ :

hg clone ssh://USER@REMOTE/path/to/repo

Они используют только один / после USER@HOST. Может быть, вы можете попробовать так.

0 голосов
/ 25 февраля 2015

Работая в Debian, чтобы решить мою проблему, я добавил следующую строку в мой /var/lib/mercurial-server/.mercurial-server файл конфигурации после [paths]

[paths]
/ = ~/repos
...

и не забудьте впоследствии выполнить эту команду:sudo -u hg /usr/share/mercurial-server/refresh-auth

0 голосов
/ 29 января 2014

Ответ Сезара Бустиоса почти верен, но он пытается клонировать от удаленного к локальному. Наоборот, мы должны добавить локальный путь. В случае, если это текущий каталог, это будет точка.

hg clone . ssh://USER@REMOTE/path/to/repo

Надеюсь, это поможет. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...