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

Как клонировать репозиторий на удаленный сервер/репозиторий с помощью Mercurial

Нашел меня сегодня довольно смущенный.

Я создаю пустой репозиторий локально (hg init), клонировал его в рабочую копию, добавлял некоторый код, совершал и толкал его (очевидно, на локальное репо).

Теперь мне нужно поделиться этим репозиторием с другими. Есть сервер, который имеет меркурий на нем, как мне клонировать мой репозиторий на удаленный, чтобы другие разработчики могли получить к нему доступ и вытащить/нажать код из/на него?

4b9b3361

Ответ 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