У меня есть центральный репозиторий SVN, который я должен совершить, но у меня есть страсть к git (как и любой другой разработчик, которого я знаю). Случай хорошо известен.Как импортировать ветви svn и теги в git-svn?
Затем я прочитал о git-svn и дал ему попробовать. Так как я не нужна полная история, только от двух месяцев или около того, я сделал так:
git svn clone -r 34000 -s https://svn.ourdomain.com/svn/repos/Project/SubProject
подпроекта был, как обычно, подкаталоги trunk
, tags
и branches
. Отлично.
Тогда для того, чтобы получить последнюю версию, я
git svn rebase
Некоторые загрузки позже, большой. Последняя ревизия, журналы и т. Д. Хорошо, теперь я переключусь на свою ветвь.
$ git branch
* master
$ git branch -r
trunk
$ git branch -a
* master
remotes/trunk
На вопросы: Где мои ветви? Я сделал что-то не так? Как мне сделать, чтобы получить мои филиалы в новом git-репо?
git-svn, где бы я ни читал об этом, разумно раздал ветви и метки, но поведение не то, что я ожидал. Благодаря!
EDIT: Я только что узнал, что git svn fetch
сделает это. Но он получит все изменения, что мне не понравится.
Ну, это не ответит на ваш вопрос, следовательно, комментарий: при использовании git-s vn вы нарушите функции отслеживания слияния subversion, так как git-svn не поддерживает их. IMHO эта проблема сама по себе дисквалифицирует git-svn для серьезного использования с хранилищем подрывной деятельности. Я не нашел никакой информации о том, будет ли эта функция когда-либо разрабатываться - возможно, нет, поскольку людям нравится переключаться на DVCS вместо использования таких хаков. – gimpf
Я где-то читал, что преобразование git слияния в коммитах с использованием --squash не нарушит отслеживание слияния подрывных операций. –
Для стандартного макета «багажника/веток/тегов», который вы, кажется, используете, вы можете попробовать ['--stdlayout'] (http://www.kernel.org/pub/software/scm/git/docs /git-svn.html), как в 'git svn clone --stdlayout svn: // ...' - см. http://stackoverflow.com/questions/5361559/what-does-the-stdlayout-do-in -git-svn-clone –