Git-svn

Материал из ALT Linux Wiki
Версия от 04:41, 23 марта 2009; Real (обсуждение | вклад) (Создание предварительного наброска)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

raorn@ об использовании git-svn:

$ ssh -n git.alt git-clone git.alt:/archive/p/package-name.git
$ git clone git.alt:packages/package-name.git
$ git branch -d srpms
$ git push origin :srpms
$ git svn init -s svn://radlinux.org/radlinux/
$ git svn fetch

Теперь весь репозитарий втянут в remotes/trunk, remotes/tags/* и remotes/branches/*, это делает опция -s для svn init.

$ git mv имякаталога/* .
$ git mv имякаталога/.* . # (if any)
$ git commit -m 'git mv имякаталога/* .'
$ git pull . tags/ВЕРСИЯ_ПАКЕТА

Тут мы "пристёгиваем" нужную версию из svn к истории пакета. Как правило мёрж происходит чисто, но могут быть проблемы если тарбол не соответствует чекауту из svn. -s ours делать не рекомендую, лучше таки проконтролировать процесс.

Далее в .gear/rules будет примерно так:

tar: remotes/tags/@version@:.
diff: remotes/tags/@version@:. .

Потом прикладываем все патчи (в master, или в разные бранчи - как удобно) и двигаемся к новому снапшоту:

$ git pull . tags/НОВАЯ_ВЕРСИЯ или trunk или branches/БРАНЧ