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

    Кроме того, аргумент вывода файла для экспорта является форматируемым в соответствии с номером ревизии и т.д., что заставляет меня полагать, что команда будет обычно использоваться для сохранения изменений таким образом, чтобы облегчить вам просмотр их (в виде файлов).