Как клонировать репозиторий на удаленный сервер / репозиторий с Mercurial - PullRequest
26 голосов
/ 03 июня 2010

Я сегодня очень смутился по этому поводу.

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

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

Ответы [ 3 ]

37 голосов
/ 03 июня 2010

Вы захотите зайти на страницу публикации репозиториев вики, чтобы получить доступ к веб-интерфейсам и элементам управления доступом, но в основном вы можете сделать что-то подобное:

hg clone yourlocalrepo ssh://you@server//home/you/repo

Это клонирует ваше локальное хранилище в удаленном месте по вашему выбору. Обратите внимание, что в этом URL-адресе есть две двойные косые черты.

Вы не можете создать такое удаленное репо, используя http://, только ssh: //. Если все, что у вас есть, это http на hgweb.cgi, вы можете «hg init» пустое хранилище на сервере и затем hg нажать на него.

8 голосов
/ 28 июня 2010

Если ваши «официальные» репозитории обслуживаются HTTP-сервером, и вы хотите создать репо в центральном местоположении на основе репо локального компьютера, вот один из способов. Для этого необходимы права администратора на центральном сервере.

например. Я работаю на Windows, и мой центральный репозиторий работает на Linux и обслуживается lighttpd согласно официальному руководству . Центральный каталог репо сервера - /var/hg/repos/, принадлежащий пользователю / группе www-data. IP-адрес моей локальной машины - 10.1.10.100, а репозиторий, который я хочу клонировать, называется foo.

  1. На локальном компьютере откройте командную строку в каталоге хранилища и введите hg serve. При этом запускается локальный веб-сервер hg, что позволяет серверу извлекать данные из него.
  2. ssh на центральном сервере репо, входя в систему как пользователь с правами sudo на www-данные.
  3. cd /var/hg/repos
  4. sudo -u www-data hg clone http://10.1.10.100 foo
4 голосов
/ 23 марта 2011

Для тех, кто придет позже и не хочет беспокоиться о хлопотах 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...