Подтвердить что ты не робот

Рекомендуемая структура хранилища/папок Mercurial для пользователя SVN

Я экспериментирую с Hg с целью отхода от SVN, но хотел бы получить некоторые мнения о том, как я должен структурировать свой репозиторий Hg. Я пришел из фона SVN (который может испортить мой взгляд на то, как это должно работать!), И мой репозиторий в настоящее время выглядит примерно так:

Project1
  trunk
  branches
    1.0
    1.1
Project2
  trunk

и т.д.. Кажется, это традиционный способ структурирования репозитория SVN.

Как мне воспроизвести это с помощью Hg? Чтобы немного подправить это, мне нравится идея "стабильных", "qa" и "dev" репозиториев/папок и хотела бы представить это, если это возможно.

Я начинаю Hg, поэтому любая помощь или совет приветствуются.

4b9b3361

Ответ 1

Существует несколько структурных различий между репозиторией Subversion (SVN) и Mercurial (HG) или короткой репо, подразумевает, как вы будете "проектировать" вашу иерархию:

  • Mercurial лучше работает только с одним проектом в репозитории. Поскольку вам всегда нужно клонировать весь репозиторий, наличие нескольких проектов в одном репозитории может иметь большое влияние на время клонирования, а также на операции pushing/pulling, так как вам придется синхронизировать все задания, которые выполнялись в других проектах, чем ваши каждый раз.
  • SVN не имеет "сильного" понятия тегирования/ветвления, в то время как Mercurial делает. В SVN (на момент написания) каждая ветвь, каждый тег, в основном является копией данный проект/папка/что угодно. Рекомендуемая структура trunk/branches/tags должна помочь вам найти ваши "копии", не более того. С другой стороны, ветки и метки хорошо определены в меркуриале. Тег - это действительно имя, которое вы наделите определенной ревизией, и вы можете запросить все существующие теги. Для веток вы увидите, что MANY способы обрабатывать их, но тот, который лучше всего подходит для философии SVN, называются ветвями.

Имея это в виду и связывая это с вами идеей стабильного, обеспечения качества (QA) и процесса разработки (dev), вот что я бы рекомендовал:

  • Один репозиторий под названием "Стабильный" для каждого проекта. Несколько репозиториев "QA" за проект и тонны "Dev" для каждого проекта.
  • Разделы тегов и имен определяются только "стабильным" репо, или, в конечном итоге, "QA" . Репозитории "Dev" могут обрабатывать их по-разному, не причиняя вреда.
  • Вы никогда не делаете толчок к "QA" или "Стабильному" репо, они тянут или объединяют пакеты или патчи, и там один ответственный за каждого.

Пример: MyProject-1.0

 [STABLE Repository, pulls from any/all QA]
  - MyProject-1.0

 [QA Repositories, branched from STABLE, pulls from any/all DEV ]
  - QA_MyProject-001 (Person A)
  - QA_MyProject-002 (Person B)
  - QA_MyProject-003 (Person C)
            ...
  - QA_MyProject-### (Person #)

 [DEV Repositories, branched from STABLE or QA]
  - DEV_MyProject-001 (Feature X) 
  - DEV_MyProject-002 (Feature Y)
  - DEV_MyProject-003 (Feature Z)
            ...
  - DEV_MyProject-### (Feature #)

  1. DEV completes feature(s)
  2. QA pulls feature(s) from DEV
  3. STABLE pulls from all approved QA(s) (consolidating all changes)

Ответ 2

Но прежде чем вы это сделаете - проверьте это: hginit.com - он прочитал пол часа, и у него есть раздел для svn -Пользователи.

Сделал меня намного мудрее, и я решил отказаться от структуры /trunk/tag, и использовать mercurial по-другому. Теперь у меня есть репозиторий для каждого проекта, который просто содержит структуру проекта, и я тэг, используя команду меркуриального тега.

. Jesper Hauge

Ответ 3

Mercurial действительно хорошо документирован. Вам нужно только знать, где искать в Wiki.

Вы можете посмотреть статью Mercurial wiki RepositoryNaming, чтобы найти некоторые из ваших ответов.

Вы также должны прочитать официальное руководство Mercurial: Mercurial: окончательное руководство

Удачи!