Я просто начинаю с Подвижным, и я прочитал учебное руководство Joel Spolsky Hg Init, которое я любил.
Я задаюсь вопросом: скажем, у меня есть частный репозиторий, и я работаю над ним приблизительно в течение месяца. Затем я решаю, что хочу централизовать его или обнародовать его, как на bitbucket.org. Я хочу сохранить всю историю.
Интуитивная вещь состояла бы в том, чтобы использовать клон hg, но согласно документам:
Местоположение источника добавляется к .hg/hgrc файлу нового репозитория как значение по умолчанию, которое будет использоваться для будущих получений по запросу.
Я не думаю, что это - то, что я хотел бы, так как источник является моим локальным, частным репозиторием, и место назначения является общедоступным сервером. Я не хочу общедоступный сервер, пытающийся вытягивать из моего частного репозитория в будущем, думая, что это - центральное. Я надеюсь, что это имеет смысл.
Я должен настроить .hg/hgrc файл на сервере вручную? Я приближаюсь к этому правильно?
В справке BitBucket говорится, что это так же просто, как создать пустой репозиторий на BitBucket, а затем сделать на него push:
... создайте новый пустой репозиторий на странице "Create repository". Мы будем считать, что этот репозиторий называется blonk и находится на http://bitbucket.org/jespern/blonk.
Теперь просто запустите его:
$ cd ~/Work/blonk # наш существующий hg-репозиторий $ 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.
Выполнение этой операции с использованием "hg push", как описано, вероятно, лучший способ сделать это в целом.
Однако в других обстоятельствах было бы удобно или обнадеживающе отметить, что все состояния Hg содержатся в каталоге .hg, и поэтому простого перемещения этого каталога достаточно для перемещения репозитория.
Например, если у вас есть ssh-доступ к машине на example.com, вы можете заархивировать (или заархивировать) свой каталог .hg в «частном» репозитории, распаковать его, скажем, в ~ / repo / foo
на удаленном компьютере (таким образом создавая там каталог ~ / repo / foo / .hg
), а затем просто клонируйте это:
$ hg clone ssh://example.com/repo/foo
Это немного похоже на лазейку для это я согласен. Однако здесь ничего особенного не происходит, и редактирование файлов конфигурации не требуется. Когда я делаю это, я нахожу это менее запутанным, чем «правильный» способ.