Mercurial (?) + SVN взаимодействие - PullRequest
3 голосов
/ 25 июля 2011

Мне нужны некоторые предложения для следующего сценария:

  • моя группа Uni имеет огромный репозиторий SVN.Я на самом деле заинтересован в подкаталоге всего этого (например, скажем / trunk / projects / my_project) - не знаю, действительно ли это имеет значение с SVN

  • Я буду отвечать за 95%из коммитов в этот проект

  • Я бы предпочел использовать DVCS.Предпочтительно Mercurial, так как это то, с чем я знаком, но я гибок в случае, если что-то еще лучше подходит для рабочего процесса

  • В my_project потенциально может быть много меньших отдельных подпроектов.Я хочу иметь возможность работать с каждым индивидуально

Рабочий процесс будет выглядеть примерно так:

  • создать новый подпроект

  • hack hack hack (ветка и т. Д.)

  • при достижении достаточно стабильного состояния включите в основной проект и нажмите SVN

  • иногда мне может понадобиться внести некоторые изменения из SVN (т.е. другими людьми) в основной проект или даже в подпроекты.Все они перейдут в транк, то есть не разветвляются на уровне SVN

Я знаю о странице Mercurial Wiki для взаимодействия SVN, и я подозреваю, что функции Mercurial subrepoможет пригодиться, но я все еще не уверен, как организовать весь беспорядок.

Ответы [ 2 ]

2 голосов
/ 25 июля 2011

Как предполагает Лусеро, hgsubversion - это инструмент, который вы обычно ищете.Кроме того, как указывает Лассе в своем комментарии к ответу Лусеро, использование функции субрепозитора Mercurial конфликтует с тем, как обрабатываются суб- или внешние репозитории в SVN: Mercurial использует простые файлы для хранения информации о суб-репозиториях, и эта информация не интерпретируется SVN.

В любом случае, исходя из вашего вопроса, вам может показаться, что вам не нужно использовать функцию подпозитория: она нужна вам только в том случае, если вы хотите отслеживать взаимозависимости между отдельными подпроектами.Итак, если у вас есть независимые подпроекты, просто создайте каталог в SVN ниже /trunk/projects/my_project для каждого проекта и используйте Mercurial с hgsubversion для каждого индивидуально.

Основное сообщение заключается в том, что hgsubversion позволяет вам локально пользоваться всеми функциями DVCS, но при публикации своей работы вы более или менее ограничены возможностями SVN.Вы не можете использовать рабочие процессы DVCS, касающиеся групповой совместной работы , при использовании центральной и линейной системы, такой как SVN, в качестве центра совместной работы.

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

1 голос
/ 25 июля 2011

Кажется, что hgsubversion идеально подходит для вас. Он позволяет вам использовать репозиторий SVN, но локально у вас есть репозиторий HG.

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