Каждый проект должен находиться в своем собственном репозитории Hg (чтобы можно было получить или пометить только определенный проект).
Помните, что каталог, который вы видите в Subversion (транк, теги, ветви), не будет существовать ни в одной современной (D) VCS, где ветви и теги являются гражданами первого класса (то есть метаданными, непосредственно управляемыми инструментом), так как в отличие от простого каталога, полученного из дешевой копии (в SVN).
Это означает, что когда вы конвертируете SVN-репозиторий, вы не должны напрямую хранить каталог "trunk", "tags" или "branch" в истории репозитория Hg.
Вы должны использовать инструмент , такой как hgsubversion
, чтобы импортировать репозиторий SVN (например, просто «repo / projectA») в репозиторий Hg, посвященный projectA. он сохранит теги и ветви оригинального проекта SVN и преобразует их в объекты Hg.
С его документация :
Все обновления с использованием hgpullsvn
производятся в ветви, названной из последнего компонента URL-адреса SVN (например, если URL-адрес SVN svn://server/myproj/branches/feature-ZZZ
, hgpullsvn
создаст и использует именованную ветку 'feature-ZZZ
' )
Если вы не хотите «конвертировать», но «синхронизировать», tonfa рекомендуем hgsubversion
, хотя в настоящее время он находится в состоянии изменения из-за интенсивного рефакторинга ":
На данный момент он не готов к использованию. Вы должны использовать это, только если вы готовы взломать его и погрузиться во внутренности Mercurial и / или Subversion.
Так как hgsvn
также разрешают некоторую синхронизацию через hgpushsvn
и hgpullsvn
... Я бы сейчас остановился на hgsvn
.