Односторонний добавочный SVN к Mercurial Workflow с частичной историей - PullRequest
1 голос
/ 01 апреля 2011

Мы поддерживаем большую базу кода в репозитории SVN. Для релизов мы хотим поместить только тег / ветку релиза в репозиторий Mercurial, исключая историю из ствола.

У меня небольшой опыт работы с DVCS, поэтому, возможно, я ошибаюсь в том, что пытался. Если бы вы могли указать на недостатки или указать на альтернативы, я был бы очень счастлив.

Вот что я пробовал до сих пор:

  • расширение преобразования hg : преобразовал полный репозиторий, используя hg convert <base project URL w/o "trunk">, который должен извлекать всю историю, включая ветви и теги, согласно документации расширения преобразования . Но hg tags возвращает только tip и default , hg branches only default . Кроме того, он довольно медленный (да, я читал о svnsync) и включает в себя полную историю. Я читал, что это можно использовать для постепенного увеличения, но я не вижу, что это работает для меня.

  • расширение hg convert : Преобразование тега и извлечение из другого тега работает с -f, но я не очень доверяю этому. Правильно ли обрабатывается удаление?

  • hgsubversion : hg clone полного хранилища исключает также теги и ветви

  • hgsubversion : hg clone для тега работает, но затем извлечение из другого тега невозможно ( abort: невозможно работать по другому пути в хранилище )

Заранее спасибо за указатели. «Нуб, иди сначала прочитай это, а потом возвращайся», также ценится.

1 Ответ

0 голосов
/ 01 апреля 2011

Отвечая на мой собственный вопрос: я нашел способ достичь того, что мне нужно.

Предполагая, что у нас есть пустой репозиторий hg, в который я хочу передать свой базовый уровень, я добавляю файл .hgignore, который фильтрует всеметаданные svn:

syntax glob 
.svn

Затем я делаю следующее:

  1. svn co <tag url> .
  2. hg addremove
  3. hg commit -m"pulled rev. <tag>"
  4. hg tag <tag>

Для последующих выпусков я делаю:

  1. svn switch <tag url> .
  2. hg addremove, hg commit & hg tag как указано выше

Это дает мне возможность переключаться между ревизиями в моем репозитории hg, и у меня есть история изменений файлов между базовыми линиями, но не на уровне фиксации svn.

Есть мнения по этому поводу?Спасибо.

...