Использование Mercurial hg bundle и экспорта hg против слияния?
Если бы вы использовали hg export
и hg bundle
?
Эти команды перечислены в руководстве быстрого запуска Mercurial но мы не можем понять, когда их использовать.
В настоящее время мы управляем dev, имея разные репозитории и слияние между ними. То есть:
cd myapp-1.01
hg pull ../myapp-1.0
hg merge
hg commit
hg push
Когда вы используете экспорт и пакет вместо используемого нами подхода?
Ответы
Ответ 1
Основное различие заключается в том, существует ли родительский набор изменений в целевом репозитории. Если, например, у вашего исходного репо есть следующее:
[A]--[B]---[C]
и ваш пункт назначения имеет следующее:
[A]--[B]
и вы хотите отправить [C], вы можете использовать пакет (или просто нажать/вытащить).
Если, однако, ваш репозиторий-получатель имел:
[A]--[D]
и вы хотите добавить [C] к нему, вам придется использовать экспорт и импорт.
Вкратце: bundle
предназначен для тех случаев, когда вы хотите делать push/pull, но не имеете хорошего сетевого пути, а export
- для того, когда вы хотите отправить логическое содержимое набора изменений, а не, точный набор изменений.
Ответ 2
-
Пакет лучше подходит для сохранения заданного диапазона наборов изменений в файл для легкой передачи (например, отправка их по электронной почте для использования в другом хранилище в другом месте).
От hg --help bundle
:
Затем файл пакета может быть переносится с использованием обычных средств и применяется к другому репозиторию с команда развязки или вытягивания. Это полезным когда прямые нажатия и выталкивание недоступны или при экспорте всего репозиторий нежелателен.
-
Экспорт, похоже, генерирует список заголовков + diff для некоторого диапазона наборов изменений, но в файле справки не упоминается, помогает ли это автоматизировать передачу их где-то еще.
Кроме того, аргумент вывода файла для экспорта является форматируемым в соответствии с номером ревизии и т.д., что заставляет меня полагать, что команда будет обычно использоваться для сохранения изменений таким образом, чтобы облегчить вам просмотр их (в виде файлов).