[devel] Бранч svn в бранч git
Maxim Ivanov
=?iso-8859-1?q?ivanov_=CE=C1_cg=2Eru?=
Вт Апр 8 10:39:54 MSD 2008
В сообщении от Friday 04 April 2008 13:21:56 Eugene Prokopiev написал(а):
> Есть такой svn-репозитарий -
> http://www.callweaver.org/browse/callweaver, он же -
> http://svn.callweaver.org/callweaver/. Хочется забирать из него бранч
> rel/1.2 в локальный git-репозитарий в бранч upstream, все остальное не
> нужно. Т.е. ищется просто аналог svn co
> http://svn.callweaver.org/callweaver/branches/rel/1.2/. Чтение git-svn
> и git-svnimport не помогло :(
Вчера часа 3 ковырял что и как делать с этим git-svn. Вот маленький итог (на
примере eathena).
$ git init
$ vim .gear-rules
$ git-add .
$ git-commit -m 'Initial commit' -a
;получили ветку master
$ git svn init http://svn.eathena.ws/svn/ea
далее редактируем файл .git/config
было:
[svn-remote "svn"]
url = http://svn.eathena.ws/svn/ea
fetch = :refs/remotes/git-svn
cтало:
[svn-remote "svn"]
url = http://svn.eathena.ws/svn/ea
fetch = branches/stable:refs/remotes/stable
т.е. вся папка branches/stable уйдет в ветку remotes/stable, таким образом
можно отобразить любую папку в любую ветку.
$ git svn fetch --revisions 12500:HEAD
; чтобы не забирать всю историю, забираем только конец
$ git-branch -r
trunk
; дело сделано!
$ git-checkout -b upstream trunk
; создали локальный бранч апстрим, где будем расставлять тэги
потом регулярно вытягиваем обновления из удалённого svn в наш локальный бранч
upstream
$ git checkout upstream && git svn rebase
Подробная информация о списке рассылки Devel