Интересное использование Mercurial Queues:)
Я предполагаю, что вы уже где-то управляете своими ртутными очередями. Если вы не / для тех, кто не знает, как это сделать, взгляните на соответствующий раздел hgbook : это отличный способ для постепенного сотрудничества / сохранения вашей работы без применения исправлений .
Три названные ветви
В вашем хранилище MQ должна быть возможность поддерживать три различных именованных ветви , по одной для каждой платформы.
Чтобы переключить платформу, просто переключите активную ветвь.
(с alias mq='hg -R $(hg root)/.hg/patches'
)
Сначала создайте ветку Windows:
$ mq branch windows
marked working directory as branch windows
создано, но еще не зафиксировано.
Делать некоторые вещи, добавлять патчи:
$ hg qnew windowspatch
... do some stuff
Обновление, вставка и фиксация:
$ hg qref
$ hg qpop -a
$ mq ci -m 'new windows branch'
Теперь у вас есть ветвь по умолчанию и новая ветвь windows:
$ mq branches
windows 65:5fd4ef0b96c9
default 64:06c1a56a3c08 (inactive)
Теперь создайте ветку Unix.
Сначала переключитесь на базовую ветку по умолчанию:
$ mq up default
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Создайте новую ветку Unix и добавьте патч для Unix:
$ mq branch unix
marked working directory as branch unix
$ hg qnew unixpatch
... blahblah
$ hg qref
$ hg qpop -a
$ mq ci -m 'adding unix branch'
$ mq branches
unix 66:c51bb2c7b413
windows 65:5fd4ef0b96c9
default 64:06c1a56a3c08 (inactive)
Использование
Не забудьте qpop -a
перед работой с репозиториями mq ...
Нажмите все патчи Windows
$ mq up windows
xx files updated, yy files merged, zz files removed, ww files unresolved
$ hg qpush -a
Три физических репо
Поддержание трех отдельных ветвей (ртутной очереди) может показаться немного пугающим. Если это так, вы можете просто использовать три разных MQ-репозитория: по одному для каждой платформы, каждый из которых имеет свои версии в разных местах.
Например:
$ cd mqs
$ hg qclone mq-windows windows
$ hg qclone mq-unix unix
$ hg qclone mq-mac mac
Для работы на разных платформах просто переключайте папки (репо). Концепция похожа на первый подход. Но вместо трех внутренних веток в одном MQ-репо вы используете три отдельных MQ-репо.