структура папок в ртутном репо? - PullRequest
4 голосов
/ 16 апреля 2010

Я только что переключился с SVN на Mercurial и прочитал некоторые учебники об этом.
У меня все еще есть некоторые заблуждения, которые, я надеюсь, вы могли бы помочь мне разобраться.
Интересно, правильно ли я понял структуру папок в Mercurial Repo.
В репозитории SVN у меня обычно есть эти папки:

СВН:

branches (branches/chat, branches/new_login etc)
tags (version1.0, version2.0 etc)
sandbox
trunk

Должна ли ветка быть еще одним клоном исходного / центрального репо в Mercurial?
казалось, что когда я читаю руководство.

А тег - это просто именованный идентификатор, но вы должны клонировать исходное / центральное хранилище всякий раз, когда вы хотите создать тег?

Как насчет песочницы? это тоже должен быть другой клон?

То есть, в основном, у вас в репозитории есть все папки / файлы, которые у вас были бы в ствольной папке?

ртутный:

central repo: projects folders/files (not in any parentfolder)
tag repo: cloned from central repo at a given moment for release 
  (version1.0, version2.0 etc)
branch repo: cloned from central repo for adding features (chat, new_login etc)
sandbox repo: experimental repo (could be pushed to central repo, or just deleted)

это правильно?

Ответы [ 3 ]

4 голосов
/ 16 апреля 2010

Главное, что нужно помнить, это то, что ветви больше не являются каталогами в DVCS, как Mercurial (или Git).

Mercurial предлагает 4 модели филиалов (подробности в этом ТА вопросе и в этой статье ):

  • клон
  • 1012 * закладки *
  • названная ветвь
  • анонимная ветка

ConvertExtension использует по умолчанию именованную ветвь (но у вас есть возможность использовать клонированные или помеченные ветви)

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

hg clone -r <branch-head-rev> <repo> <new-repo>
4 голосов
/ 16 апреля 2010

Я не совсем уверен, что я понимаю все ваши вопросы, я думаю, вы просто немного запутались с некоторыми терминологиями, но я попытаюсь ответить на них.

Должна ли ветка быть еще одним клоном исходного / центрального репо в Mercurial?

Да, ветвь - это просто клон, который начинается с определенной ревизии. Если вы вносите различные изменения в один клон, то в основном это становится «ветвью» по сравнению с «клоном».

А тег - это просто именованный идентификатор, но вы должны клонировать исходное / центральное репо, когда вы хотите создать тег?

Тег - это просто более удобный для человека способ запомнить конкретную ревизию, определенный момент в истории хранилища. Вы можете пометить что-то как «версия 0.8», так что вам не нужно помнить, что вы выпустили версию 0.8 в ревизии 427. Нет никаких причин делать клон как часть этого, если вам не нужна ветвь (скажем, для интеграции Исправление для людей, работающих под управлением версии 0.8, без предоставления им кода вашего транка). Вы всегда можете сделать клон позже из тега, если это станет необходимым, вам не нужно делать это во время создания.

Как насчет песочницы? это тоже должен быть другой клон?

Предполагая, что "песочница" просто "где-то для меня, чтобы поиграть", это просто ветвь. Итак, изначально это клон, да.

То есть, в основном, у вас в репозитории есть все папки / файлы, которые у вас были бы в ствольной папке?

Да, все эти другие понятия ветвей, «песочницы» и т. Д. Обрабатываются функциями Mercurial, а не файлами, которые вы должны были использовать в Subversion.

Вы читали Книгу ртути ? Я нашел это очень полезным при подборе понятий.

1 голос
/ 21 апреля 2010

Существует четыре режима ветвления в Mercurial: анонимный, клонированный, именованный и (с расширением) закладка.

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

Эта статья объясняет это намного лучше. Мне стало понятнее.

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