Рабочий процесс Mercurial для частных филиалов с несколькими компьютерами, обслуживающих одно центральное хранилище - PullRequest
2 голосов
/ 26 января 2010

У меня есть репозиторий svn, и я хотел бы использовать Mercurial в качестве внешнего интерфейса к нему. Я тестировал hgsubversion, и это кажется довольно хорошим.

Мне обычно приходится переключаться между компьютерами во время написания и тестирования кода, и я хотел бы иметь возможность проверить свои вещи (на ветке, mq, пока не уверен) таким образом, чтобы я мог их включить другие машины, отредактируйте там и отодвиньте назад и так далее, и только когда я буду готов, отправьте его в центральное хранилище.

В git я бы делал это с временными частными ветвями, которые я проталкивал между моими машинами. Затем я бы вернулся на главную ветку и подтолкнул к центральному репо. Но я все еще привыкаю к ​​совершенно другой модели ветвления hg и не вижу, какой из множества вариантов имеет больше смысла (клон, именованная ветвь [они постоянны?], Анонимная ветвь, mq ...)

Есть какие-нибудь намеки на ртутного новичка?

Ответы [ 2 ]

3 голосов
/ 26 января 2010

Просто используйте отдельные репозитории для «центрального» и «в процессе». Пусть ваше центральное значимое репо станет местом, где вы будете вносить изменения, которыми вы готовы поделиться с миром, и пока вы не будете готовы выпустить их, перенесите их в отдельное репо «-devel». Толкай и тяни к этому со всех своих машин и превращай-развивай в формальный с «толчком», когда будешь готов.

Вы можете стать более любопытным и использовать очередь исправлений (mq) в devel, которая сама по себе управляется версией, если вы не хотите, чтобы результирующие наборы изменений обязательно соответствовали вашим набираемым изменениям, но я фанат разоблачения обрабатывать столько же, сколько и результат, поэтому я не иду по этому пути.

В любом случае, несмотря на то, что push и pull - это все, что вам нужно, чтобы текущая работа шла в / из хранилища -devel (или версионной очереди), а затем мигрировала в центральное положение, когда вы будете готовы.

(Расширение LocalBranch, предложенное в комментарии к самому вопросу, совсем не то, что вам нужно, поскольку они вообще не переносятся между машинами - отсюда и их имя.)

1 голос
/ 26 января 2010

Обычно я использую закладки или локально созданные ветки в Mercurial. Локальная именованная ветвь теряет свое имя, когда она отправляется в Subversion, и закладка в любом случае является временной. Это позволяет вам избежать использования множества хранилищ и поддерживать чистоту (эр).

Нажатие и вытягивание «за спиной svn» может время от времени приводить к несколько запутанному набору ревизий, поскольку хеши обязательно меняются, когда вы нажимаете на Subversion.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...