Синхронизация SVN до Mercurial с использованием SVNSYNC & HG Convert - Misses SVN: внешние?
-
27-09-2019 - |
Вопрос
Я создал Mercurial зеркало репозитория SVN (используя этот учебник: http://oreilly.com/Opensource/excerpts/Opensource-mercurial/migrating-To-mercurial.html.). Синхронизация отлично работает, за исключением того, что я заметил, что он не поднимает внешний репозиторий, который ссылается на основной SVN Reppo ...
Я в идеале хотел бы иметь возможность потянуть все как однократное репо, в Mercurial (наряду со сборами, если это возможно).
То, что я не уверен в том, что отсутствует внешнее ограничение Svnsync или ограничение HG Convert?
Есть ли способ, которым я могу заставить внешнюю синхронитую, в том же Repo Mercurial?
Я думаю, что хорошее решение будет настроить процесс синхронизации снова, для внешнего. Создайте вилку текущего зеркала HG и синхронизируйте внешнюю в вилке зеркала HG.
Улова с том, внешний багажник предназначен для попадания в подпапку первого зеркала, так как я могу реплицировать это с преобразованием? Я сомневаюсь, что могу сказать преобразовать в импорт в подпапку ...
Решение
Недостающее внешнее ограничение Svnsync или ограничение HG Convert?
svnsync
используется для создания зеркала репозитория SVN. Это включает в себя svn:externals
характеристики. Поэтому это должно быть ограничение hg convert
.
Обратите внимание, что вам не нужно создавать зеркало с svnsync
. Отказ В статье рекомендуется это только потому, что наличие локальной копии может ускорить процесс преобразования.
Есть ли способ, которым я могу заставить внешнюю синхронитую, в том же Repo Mercurial?
Для репозитория SVN распространена множественные слабо связанные проекты, каждый из которых со своими собственными ветвями и тегами. Но Mercurial не работает таким образом: когда вы вешаете, вы веревку все, что находится в репозитории. Вы должны создать отдельный репозиторий Mercurial для каждого проекта в SVN, который имеет свой собственный багажник / ветви / теги. Этот другой подход, скорее всего, почему hg convert
игнорирует внешность, даже если они находятся в том же репозитории SVN.
Есть эквивалент svn:externals
в Mercurial; Это называется «Субрипозитории». Вместо того, чтобы иметь один или несколько svn:externals
свойства, у вас есть один .hgsub
Файл с аналогичным контентом в корне вашего проекта. Сначала вы должны преобразовать каждый проект SVN на отдельный репозиторий Mercurial, а затем подключите их с помощью подсрефозиторов. Увидеть Страница Mercurial Wiki для подрепозиторов Больше подробностей.