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
работает!
Ответы
Ответ 1
Извлечение из hg help urls
Некоторые примечания об использовании SSH с Mercurial:
это означает, по крайней мере, что вы не можете использовать один и тот же 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