Как клонировать репозиторий на удаленный сервер/репозиторий с помощью Mercurial
Нашел меня сегодня довольно смущенный.
Я создаю пустой репозиторий локально (hg init), клонировал его в рабочую копию, добавлял некоторый код, совершал и толкал его (очевидно, на локальное репо).
Теперь мне нужно поделиться этим репозиторием с другими. Есть сервер, который имеет меркурий на нем, как мне клонировать мой репозиторий на удаленный, чтобы другие разработчики могли получить к нему доступ и вытащить/нажать код из/на него?
Ответы
Ответ 1
Вы захотите проверить публикацию репозиториев на странице вики, чтобы попасть в веб-интерфейсы и элементы управления доступом, но у вас самые основные вы может сделать что-то вроде этого:
hg clone yourlocalrepo ssh://[email protected]//home/you/repo
Это клонирование вашего локального репо в удаленное местоположение по вашему выбору. Обратите внимание, что в этом URL есть две двойные слэши.
Вы не можете создать удаленное репо, подобное этому, используя http://, только ssh://. Если все, что у вас есть, это http-hgweb.cgi, вы можете "hg init" пустым репо на сервере, а затем hg нажать на него.
Ответ 2
Если ваши "официальные" репозитории обслуживаются HTTP-сервером, и вы хотите создать репо в центральном местоположении на основе локального репо, здесь один из способов. Для этого вам нужны права администратора на центральном сервере.
например. Я разрабатываю окна, а мой центральный репозиторий работает на linux и обслуживается lighttpd за официальное руководство. Каталог центрального репо сервера /var/hg/repos/
, принадлежащий пользователю/группе www-data
. Мой IP-адрес локальной сети - 10.1.10.100, а репозиторий, к которому я хочу клонировать, называется foo.
- На локальном компьютере откройте командную строку в каталоге репозитория и введите
hg serve
. Это запускает локальный веб-сервер hg, который позволит серверу вытащить его.
- ssh на центральный сервер репо, входящий в систему как пользователь с правами sudo на www-data.
-
cd /var/hg/repos
-
sudo -u www-data hg clone http://10.1.10.100 foo
Ответ 3
Для тех, кто приходит позже, и не хочет беспокоиться о проблемах ssh для того, чтобы перенаправить изменения на сервер, созданный для размещения репозиториев, вы можете просто запустить на сервере, а затем нажать, как и на все другие репо.
# on server:
cd repos/
mkdir myrepo
cd myrepo
hg init
cd ..
chown -R apache:apache myrepo
cd ..
vim hgweb.config
# change [paths]
[paths]
myrepo = /path/to/myrepo
# on your machine
# make sure you've configured hgrc correctly
[paths]
default = http://server/hg/repos/myrepo
hg push
# ???
# profit