[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