Как переместить частный репозиторий Mercurial на центральный сервер? - PullRequest
12 голосов
/ 24 июня 2010

Я только начинаю работать с Mercurial, и я прочитал учебник Джоэла Спольски Hg Init , который мне понравился.

Мне интересно: скажем, у меня есть личноехранилище и я работаю над ним около месяца.Затем я решаю, что хочу централизовать это или сделать его общедоступным, как на bitbucket.org .Я хочу сохранить всю историю.

Интуитивно понятно, что можно использовать рт.ст. клон , но в соответствии с документами:

Расположение источникадобавляется в файл .hg / hgrc нового репозитория, как значение по умолчанию, которое будет использоваться для будущих извлечений.

Не думаю, что это то, что я хотел бы, так как источник - мой локальный, частный репозиторий, и местом назначения является публичный сервер.Я не хочу, чтобы общедоступный сервер пытался извлечь из моего личного хранилища в будущем, думая, что это центральный.Надеюсь, это имеет смысл.

Нужно ли настраивать файл .hg / hgrc на сервере вручную?Правильно ли я подхожу к этому?

Ответы [ 2 ]

18 голосов
/ 24 июня 2010

Справка BitBucket говорит, что это так же просто, как сделать пустой репозиторий в BitBucket, а затем нажать на него:

... создать новый пустой репозиторий через страницу «Создать репозиторий». Предположим, что этот репозиторий называется blonk и находится в http://bitbucket.org/jespern/blonk.

Теперь просто нажмите на нее:

  $ cd ~/Work/blonk # our existing hg repository
  $ hg push http://bitbucket.org/jespern/blonk
  ...

Готово!

Вы можете отредактировать .hg / hgrc в своем хранилище, чтобы включить путь по умолчанию к Bitbucket:

  $ cat .hg/hgrc
  [paths]
  default = http://bitbucket.org/jespern/blonk

Теперь вы можете просто ввести hg push и hg pull без указания полного URL.

4 голосов
/ 24 июня 2010

Выполнение этой операции с использованием 'hg push', как описано, вероятно, является наилучшим способом сделать это, в целом.

Однако в других обстоятельствах было бы удобно или утешительно отметить, что все состояния Hg содержатся в каталоге .hg, и поэтому достаточно просто переместить этот каталог, чтобы переместить хранилище.

Например, если у вас есть ssh-доступ к машине на example.com, вы можете заархивировать (или сжать) свой каталог .hg в «приватном» хранилище, распаковать его, скажем, в ~/repo/foo на удаленном машина (таким образом создавая каталог ~/repo/foo/.hg там), а затем просто клонируйте это:

$ hg clone ssh://example.com/repo/foo

У меня есть небольшое заднее чувство, я согласен. Однако здесь ничего не происходит, и редактирование файлов конфигурации не требуется. Когда я делаю это, я нахожу это менее запутанным, чем «правильный» способ.

...