[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