Патчи - это простое и универсальное решение.
Для перемещения по большим группам изменений (особенно двоичных изменений и слияний) Mercurial предлагает двоичные пакеты. Пакет - это в основном двоичный материал, который отправляется по сети, когда вы делаете hg push
, но здесь он записывается в файл.
Давайте представим, что я каким-то образом получил клон (с помощью флешки, DVD и т. Д.). Назовите это upstream
. Затем я делаю второй клон, называю это devel
. Я делаю все свои разработки в devel
и делаю много коммитов, слияний и т. Д. Поскольку Mercurial распространяется, я могу делать все это в автономном режиме.
Чтобы увидеть, какие наборы изменений отсутствуют в upstream
Я делаю
% hg outgoing ../upstream
Когда мне есть что отправить, я могу использовать
% hg bundle changes.hg ../upstream
для получения сжатого двоичного файла, который содержит наборы изменений, включая все их метаданные. Затем я могу записать этот файл на компакт-диск и отправить его по почте ...
Получатель пакета может сделать
% hg incoming changes.hg
чтобы увидеть список изменений и
% hg pull changes.hg
распаковать и добавить наборы изменений в свой репозиторий. Тогда ему, скорее всего, придется объединиться - это точно так же, как если бы он извлек прямо из вашего хранилища по HTTP или SSH.
Обратите внимание, что репозиторий upstream
используется только как удобный способ запомнить, какие наборы изменений уже найдены в вышестоящем репозитории. Вы также можете просто записать ID набора изменений и использовать hg bundle --base
при связывании, чтобы указать базовый (общий) набор изменений. Смотрите hg help bundle
или смотрите в вики .