[devel] Бранч для svn-репозитария в git
Eugene Prokopiev
=?iso-8859-1?q?enp_=CE=C1_altlinux=2Eorg?=
Вс Авг 31 11:31:54 MSD 2008
31.08.08, Vitaly Ostanin написал(а):
> Eugene Prokopiev пишет:
>
> >> В другом репозитарии
> >> (http://git.altlinux.org/people/enp/packages/callweaver.git) все
> >> бранчи через web видны. Я что-то забыл сделать?
> >
> > Нет, вру, там то же самое. Расскажу тогда, как делал:
> >
> > $ mkdir connexion
> > $ cd connexion
> > $ git-init
> > $ git-svn init svn://radlinux.org/radlinux/branches/0.4.6
> > $ git-svn fetch
>
>
> Судя по ману, проще git-svn clone.
Уже не помню, чем мне так оказалось проще, экспериментировал с git-svn давно
> > $ git-checkout git-svn
> > $ git-branch -d master
>
>
> Чем помешал master ?
Бессмысленностью своего существования :) Я иногда читаю здесь что-то в
духе "стоит свою основную ветку в своём git держать именно в master",
но я не знаю, какая ветка у меня основная. Обычно я делаю ветку для
апстримных исходников (ну или сколько их там получится при импорте),
по ветке на патчи в случае необходимости, бывает завожу ветку на
дефолтные конфиги, если они не совсем тривиальны, и по ветке на спеки
для sisyphus и и для branch/4.0 (так уж сложилось, что 4.1 мне
неинтересен). Время от времени ветка master самозарождается снова, ну
я ее снова удаляю, если не забуду ;)
Для экспериментов с connexion пока достаточно:
$ git-branch -a
* srpm
git-svn
git-svn на 1023
> > $ git-fetch ../srpm/ srpm:srpm
>
>
> ../srpm - это точно репозиторий?
Ага, специальный репозитарий с первоначальными .gear/rules и спеком
> > $ git-merge -s ours git-svn
> > $ vim .gear/rules
> > $ vim connexion.spec
> > $ gear-update-tag -ac
> > $ gear-commit -s
> > $ gear -v --hasher -- hsh --target=i586
> > $ mkdir .git/remotes
> > $ vim .git/remotes/origin
>
>
> Можно ещё так:
>
> $ git-remote add origin \
> git.alt:/people/enp/packages/connexion.git
> $ git-remote update
спасибо
> > $ git-push
> >
> > Просьба прокомментировать и рассказать, как это делается правильно
>
>
> Желательно уточнить, что именно "это", то есть в каких бранчах и
> что Вы хотите получить.
Хочу, чтобы тот, клонирует мой репозитарий, мог выпустить следующую
версию примерно таким образом (можно и другим, конечно, - но другие
мне неизвестны):
$ git-svn fetch - утягиваем апстримные изменения в бранч git-svn
$ git-merge -s ours git-svn - мержим его с текущим бранчем srpm, в
котором лежит спек
$ gear-update-tag -ac - объясняем gear, что тарболл нужно делать из
последнего коммита
$ vim connexion.spec - меняем в релизе svnNNNN
$ add_changelog connexion.spec - добавляем запись в changelog
$ mcedit connexion.spec - правим ее
$ gear-commit -a - коммитим
$ gear -v --hasher -- hsh --target=i586 - собираем
Т.к. утянувший видит следующее:
$ git-branch -a
origin/srpm
сделать git-svn fetch он, по всей видимости, не сможет. Как сделать, чтоб смог?
> Чтобы на git.alt были видны бранчи, нужно 'git-push --all' или
> явное указание бранча для push. Для тегов нужно добавлять --tags.
Сделал git-push --all, эффект тот же.
С тегами ситуация следующая: я не знаю, чем бы они могли бы быть мне
полезны - тарболлы я делаю всегда по последнему коммиту, а в коммитах
моих бранчей запутаться нелегко. Поэтому я теги не ставлю.
--
С уважением,
Прокопьев Евгений
Подробная информация о списке рассылки Devel