Подтвердить что ты не робот

Mercurial: remote: abort: Здесь нет репозитория Mercurial (.hg не найден)!

все

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

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

sudo hg clone -v ssh://[email protected]//home/carl/Java/Projects/peta/

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

Я также пробовал

hg --config ui.remotecmd=/usr/bin/hg clone ssh://[email protected]//home/carl/Java/Projects/peta/

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


решаемые

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

4b9b3361

Ответ 1

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

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

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

    SSH://example.com//tmp/repository

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

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

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

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

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

HTH

Ответ 2

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

hg clone ssh://[email protected]/path/to/repo

Они используют только один / после [email protected]. Возможно, вы можете попробовать это.

Ответ 3

Ответ César Bustíos почти правильный, но он пытается клонировать с удаленного на локальный. Для противоположного пути мы должны добавить локальный путь. В случае, если это текущий каталог, это будет точка.

hg clone . ssh://[email protected]/path/to/repo

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

Ответ 4

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

[paths]
/ = ~/repos
...

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