Не удается клонировать хранилище Mercurial (HG) через http - PullRequest
5 голосов
/ 02 мая 2009

Я не могу клонировать свой репозиторий через http:

abort: 'http://MYREPO' не похоже на хранилище hg!

Во-первых, я создал новый репозиторий hg init MYREPO с последующим добавлением файла и фиксацией.

Каталог с моим репо защищен паролем, но никаких проблем из-за этого нет, я попробовал оба метода клонирования: (на моей локальной машине)

рт.ст. клон http://MYREPO my_repo

и

рт.ст. клон http://user:password@MYREPO my_repo

Права доступа к репо: drwxrwxr-x

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

Что может быть не так?

Ответы [ 4 ]

10 голосов
/ 02 мая 2009

UPDATE:

Похоже, вы путаетесь между хранилищем и именем хоста

Если работает «hg serve», «hg clone http://USER@HOST:8000", где хостом может быть IP-адрес вашего компьютера или имя хоста (введите« hostname »в linux или попробуйте« ping localhost »). от 8000, передавая --port #### в hg serve.

Если вы хотите сделать это через ssh, "hg clone ssh: // USER @ HOST // PATH / TO / YOUR / REPOSITORY". Предположим, вы создали репозиторий в своем домашнем каталоге с именем MYREPO, а затем сделали бы следующее: "hg clone ssh: // USER @ HOST / ~ / MYREPO"

Вы можете клонировать свое репо только через http - это то, что служит репо через http. Mercurial предоставляет встроенный http-сервер для вас. Запустите "hg serve", находясь внутри вашего репозитория, затем попытайтесь клонировать его из другого места (или другой командной оболочки). Если вам нужен только локальный клон, вам не нужно использовать http ("hg clone").

Кроме того, попробуйте "hg help clone" и "hg help serve" для получения подробной информации.

3 голосов
/ 22 августа 2011

странно, клонирование с помощью ssh требует неинтуитивной дополнительной косой черты.

у меня работает на хосте с ssh на порте 43211

hg clone ssh://example.com:43211//repos/myRepo ./myRepo

двойная косая черта после номера порта работает, но одна косая черта там приводит к ошибке «.hg not found»

2 голосов
/ 02 мая 2009

besszero прав, но почему бы вам не клонировать с помощью SSH, если вы все равно собираетесь использовать имя пользователя и пароль?

hg clone ssh: // machine_ip // your / repo / location your_repo

Также безопаснее, если вы не хотите открывать другой порт для http-сервера Mercurial и вам не нужны функции hgweb, трафик также зашифрован. Единственным недостатком является то, что вы должны войти в систему, чтобы оформить заказ, но HTTP не работает для отмены изменений, по крайней мере, по моему опыту.

0 голосов
/ 02 мая 2009

Argh ... Нужно быть осторожным с конфигурацией .htaccess. В моем случае мне нужно было добавить 'hgwebdir.cgi' к пути к клону ... Спасибо за ответы, хотя!

SSH кажется логичным, но почему-то я не смог использовать его с другим пользователем, кроме моего локального:

hg клон ssh: // MY_REMOTE_USER @ MYREPO remote: abort: Здесь нет репозитория Mercurial (.hg не найден)!

...