2009-05-02 3 views
5

Я не могу клонировать мой репозиторий через HTTP:Не удается клонировать ртутный (Ug) репозиторий через HTTP

Прервать: «http://MYREPO» не появляется, чтобы быть хранилищем рт.ст.!

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

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

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

и

клон http://user:[email protected] рт.ст. my_repo

права доступа к директории репо: drwxrwxr-х

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

Что может быть неправильным?

ответ

0

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

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

клона SSH рт.ст.: // MY_REMOTE_USER @ MYREPO удаленные: прервать: Там нет Mercurial репозиторий здесь (.hg не найденный)!

10

UPDATE:

Похоже, вы получаете путанице между репозиторием и имя хоста

Если работает «рт.ст. служить», «¯hG клон http://[email protected]:8000», где хозяин может быть IP вы машины или имя хоста (тип " hostname "на linux или попробуйте" ping localhost "). Вы можете изменить порт по умолчанию с 8000, передав -port #### в hg-службу.

Если вы хотите сделать это через 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» для деталей.

2

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

клон SSH рт.ст.: // machine_ip // ваш/репо/место your_repo

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

+1

Он работает с push_ssl = false в вашем hgrc –

3

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

это работает для меня на хосте с SSH на порту 43211

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

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

+3

'hg help urls' говорит, что с одной косой чертой вы получаете доступ к своему дому и с двумя корнями. – kay