* [devel] Бранч для svn-репозитария в git
@ 2008-08-30 16:35 Eugene Prokopiev
2008-08-30 16:43 ` Eugene Prokopiev
0 siblings, 1 reply; 13+ messages in thread
From: Eugene Prokopiev @ 2008-08-30 16:35 UTC (permalink / raw)
To: Devel
Здравствуйте!
Посмотрите, пожалуйста, на
http://git.altlinux.org/people/enp/packages/connexion.git
Отчего в heads через web не видно бранча git-svn и отчего после
git-clone видно только лишь:
$ git-branch -a
origin/srpm
У меня перед git-push было:
$ git-branch -a
* srpm
git-svn
git-svn@1023
$ cat .git/remotes/origin
URL: git.alt:packages/connexion.git
Push: refs/heads/*:refs/heads/*
Push: refs/remotes/*:refs/remotes/*
Push: refs/tags/*:refs/tags/*
В другом репозитарии
(http://git.altlinux.org/people/enp/packages/callweaver.git) все
бранчи через web видны. Я что-то забыл сделать?
--
С уважением,
Прокопьев Евгений
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-30 16:35 [devel] Бранч для svn-репозитария в git Eugene Prokopiev
@ 2008-08-30 16:43 ` Eugene Prokopiev
2008-08-30 21:50 ` Vitaly Ostanin
2008-08-31 14:11 ` Alexey I. Froloff
0 siblings, 2 replies; 13+ messages in thread
From: Eugene Prokopiev @ 2008-08-30 16:43 UTC (permalink / raw)
To: Devel
> В другом репозитарии
> (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-checkout git-svn
$ git-branch -d master
$ git-fetch ../srpm/ srpm:srpm
$ 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-push
Просьба прокомментировать и рассказать, как это делается правильно
--
С уважением,
Прокопьев Евгений
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-30 16:43 ` Eugene Prokopiev
@ 2008-08-30 21:50 ` Vitaly Ostanin
2008-08-31 7:31 ` Eugene Prokopiev
2008-08-31 14:11 ` Alexey I. Froloff
1 sibling, 1 reply; 13+ messages in thread
From: Vitaly Ostanin @ 2008-08-30 21:50 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1292 bytes --]
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-checkout git-svn
> $ git-branch -d master
Чем помешал master ?
> $ git-fetch ../srpm/ srpm:srpm
../srpm - это точно репозиторий?
> $ 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.alt были видны бранчи, нужно 'git-push --all' или
явное указание бранча для push. Для тегов нужно добавлять --tags.
--
Regards, Vyt
mailto: vyt@altlinux.org
JID: vitaly.ostanin@gmail.com
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-30 21:50 ` Vitaly Ostanin
@ 2008-08-31 7:31 ` Eugene Prokopiev
2008-08-31 13:00 ` Vitaly Ostanin
0 siblings, 1 reply; 13+ messages in thread
From: Eugene Prokopiev @ 2008-08-31 7:31 UTC (permalink / raw)
To: ALT Linux Team development discussions
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, эффект тот же.
С тегами ситуация следующая: я не знаю, чем бы они могли бы быть мне
полезны - тарболлы я делаю всегда по последнему коммиту, а в коммитах
моих бранчей запутаться нелегко. Поэтому я теги не ставлю.
--
С уважением,
Прокопьев Евгений
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-31 7:31 ` Eugene Prokopiev
@ 2008-08-31 13:00 ` Vitaly Ostanin
2008-08-31 13:35 ` Eugene Prokopiev
0 siblings, 1 reply; 13+ messages in thread
From: Vitaly Ostanin @ 2008-08-31 13:00 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 377 bytes --]
Eugene Prokopiev пишет:
<skipped/>
>> > $ git-checkout git-svn
Здесь, похоже, пропущен ключ '-b', если Вы хотите сделать новый
бранч. После всех манипуляций стоит запускать gitk и смотреть,
что получилось.
Давайте продолжим в jabber, чтобы не засорять рассылку.
<skipped/>
--
Regards, Vyt
mailto: vyt@altlinux.org
JID: vitaly.ostanin@gmail.com
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-31 13:00 ` Vitaly Ostanin
@ 2008-08-31 13:35 ` Eugene Prokopiev
0 siblings, 0 replies; 13+ messages in thread
From: Eugene Prokopiev @ 2008-08-31 13:35 UTC (permalink / raw)
To: ALT Linux Team development discussions
31.08.08, Vitaly Ostanin написал(а):
> Eugene Prokopiev пишет:
>
> <skipped/>
>
> >> > $ git-checkout git-svn
>
> Здесь, похоже, пропущен ключ '-b', если Вы хотите сделать новый
> бранч.
Я не уверен, что я этого хочу. Я правильно понимаю, что в этом случае
кроме ремотного бранча git-svn (его сделал git-fetch) я получу еще и
аналогичный локальный? Какое имя он получит? Проверил - получилось 2
бранча git-svn. Как теперь мне переключаться в нужный? А я должен буду
синхронизировать локальный его с ремотным - и это все для того, чтоб я
мог запушить явно выделенный бранч с апстримными исходниками?
Интересно, что коммиты ремотного бранча git-svn уходят на git.alt и
клонируются оттуда и так, поэтому из клонированного репозитария вполне
можно собирать пакет. Более того, на клонированном репозитарии можно
точно так же сказать git-svn init и git-svn fetch - и после этого
мержить и собирать так, как я описал - т.е. проблема вроде как
решается. Но меня не покидает ощущение кривизны такого подхода.
> После всех манипуляций стоит запускать gitk и смотреть,
> что получилось.
Ну это непременно. Кстати, после git-svn init и git-svn fetch
клонированный репозитарий своим внешним видом в gitk --all ничем не
отличается от моего первоначального. Разве что он, похоже, некорректно
работает с ремотными бранчами - я делаю:
$ git-checkout origin/srpm
$ git-merge -s ours git-svn
$ gear-update-tag -ac
$ vim connexion.spec
$ gear-commit -a
а в gitk --all ничего подобного не вижу (в git-log вижу). Да, где-то я
читал, что править нужно только локальные, а не ремотные бранчи, т.к.
потом будут сложности с взаимодействием с первоначальным репозитарием
- поэтому претензии к gitk снимаю.
> Давайте продолжим в jabber, чтобы не засорять рассылку.
Если никто из присутствующих не возражает, давайте останемся здесь -
это ведь общие вопросы использования git/gear, может еще кому будет
интересно. Вот как доберемся до специфики connection - тогда можно и
перебраться :)
--
С уважением,
Прокопьев Евгений
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-30 16:43 ` Eugene Prokopiev
2008-08-30 21:50 ` Vitaly Ostanin
@ 2008-08-31 14:11 ` Alexey I. Froloff
2008-08-31 14:18 ` Eugene Prokopiev
1 sibling, 1 reply; 13+ messages in thread
From: Alexey I. Froloff @ 2008-08-31 14:11 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 270 bytes --]
* Eugene Prokopiev <enp@> [080830 20:57]:
> $ mkdir connexion
...
> $ git-push
> Просьба прокомментировать и рассказать, как это делается правильно
Что именно хочется сделать? Сохранить историю src.rpm'ов и
перейти на сборку из svn?
--
Regards,
Sir Raorn.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-31 14:11 ` Alexey I. Froloff
@ 2008-08-31 14:18 ` Eugene Prokopiev
2008-08-31 16:07 ` Alexey I. Froloff
0 siblings, 1 reply; 13+ messages in thread
From: Eugene Prokopiev @ 2008-08-31 14:18 UTC (permalink / raw)
To: ALT Linux Team development discussions
31.08.08, Alexey I. Froloff<raorn@> написал(а):
> * Eugene Prokopiev <enp@> [080830 20:57]:
> > $ mkdir connexion
> ...
>
> > $ git-push
> > Просьба прокомментировать и рассказать, как это делается правильно
>
> Что именно хочется сделать? Сохранить историю src.rpm'ов и
> перейти на сборку из svn?
достаточно просто перейти на сборку из svn + иметь возможность
собирать нескольким майнтейнерам
--
С уважением,
Прокопьев Евгений
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-31 14:18 ` Eugene Prokopiev
@ 2008-08-31 16:07 ` Alexey I. Froloff
2008-08-31 19:36 ` Eugene Prokopiev
0 siblings, 1 reply; 13+ messages in thread
From: Alexey I. Froloff @ 2008-08-31 16:07 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1199 bytes --]
* Eugene Prokopiev <enp@> [080831 18:29]:
> достаточно просто перейти на сборку из 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/БРАНЧ
--
Regards,
Sir Raorn.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-31 16:07 ` Alexey I. Froloff
@ 2008-08-31 19:36 ` Eugene Prokopiev
2008-08-31 20:08 ` Alexey I. Froloff
0 siblings, 1 reply; 13+ messages in thread
From: Eugene Prokopiev @ 2008-08-31 19:36 UTC (permalink / raw)
To: ALT Linux Team development discussions
31.08.08, Alexey I. Froloff<raorn@altlinux.ru> написал(а):
> * Eugene Prokopiev <enp@> [080831 18:29]:
>
> > достаточно просто перейти на сборку из 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
Удалить бранч srpms в локальном репозитарии и в своем на git.alt?
Так его нет:
$ git-branch -a
* master
origin/HEAD
origin/master
origin/srpms
А вообще, предыдущие src.rpm (их именно что была куча, и во всех -
свои куски svn) не годятся совсем, нужно делать с нуля. Поэтому я
дальше поскипаю до того момента, который мне непонятен:
> $ git pull . tags/ВЕРСИЯ_ПАКЕТА
...
> Далее в .gear/rules будет примерно так:
>
> tar: remotes/tags/@version@:.
> diff: remotes/tags/@version@:. .
...
> $ git pull . tags/НОВАЯ_ВЕРСИЯ или trunk или branches/БРАНЧ
Зачем делать pull в текущий бранч (предполагается, что спек там же?),
если tar нам сделают из ремотного бранча по тегу, а не из каталога в
текущем бранче?
И в чем принципиальная разница с моим рецептом? У меня тоже tar
делался из ремотного бранча, но после push на git.alt и clone оттуда
этот ремотный бранч уже не был виден - т.о. разработчик, сделавший
clone, не мог просто сделать git-svn fetch для обновления апстримных
исходников, а должен был сделать перед тем git-svn init. В вашем
случае это тоже так?
Меня именно модель взаимодействия больше всего интересует - я выпускаю
одну версию, другой разработчик - следующую, потом выпускаю еще раз я.
--
С уважением,
Прокопьев Евгений
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-31 19:36 ` Eugene Prokopiev
@ 2008-08-31 20:08 ` Alexey I. Froloff
2008-09-01 8:34 ` Eugene Prokopiev
0 siblings, 1 reply; 13+ messages in thread
From: Alexey I. Froloff @ 2008-08-31 20:08 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 2253 bytes --]
* Eugene Prokopiev <enp@> [080831 23:48]:
> Зачем делать pull в текущий бранч (предполагается, что спек там же?),
> если tar нам сделают из ремотного бранча по тегу, а не из каталога в
> текущем бранче?
Там же ещё и diff есть. Не обязательно в текущий, можно и через
несколько бранчей, например с помощью gear-merge. Смысл в том,
что апстримные сорцы в одном месте, все локальные изменения в
другом (мне удобно когда это в master, некоторые держат в master
только спек, а патчи в "предыдущем" бранче).
Пример "многоветочного" репозитария у меня в mutt1.5.git.
> И в чем принципиальная разница с моим рецептом?
Я его не очень понял и рассказал свой рецепт ;-)
> У меня тоже tar делался из ремотного бранча, но после push на
> git.alt и clone оттуда этот ремотный бранч уже не был виден -
> т.о. разработчик, сделавший clone, не мог просто сделать
> git-svn fetch для обновления апстримных исходников, а должен
> был сделать перед тем git-svn init. В вашем случае это тоже
> так?
Почти. В моём примере их надо тоже пушить явно:
git push origin refs/remotes/trunk:refs/remotes/trunk
git push origin 'refs/remotes/tags/*:refs/remotes/tags/*'
git push origin 'refs/remotes/branches/*:refs/remotes/branches/*'
Правая сторона может быть и не refs/remotes/*, а refs/svn/*. Но
чтобы работал git svn, локально эти ветки должны быть в
refs/remotes/. Хотя по слухам это можно и настроить через
.git/config, но я это пока не очень асилил.
Чтобы второй разработчик мог делать git svn fetch надо либо
скопировать кусок .git/config относящийся к svn у первого
разработчика или сделать git svn init и расставить нужные бранчи
в том виде как их ожидает найти git svn.
> Меня именно модель взаимодействия больше всего интересует - я выпускаю
> одну версию, другой разработчик - следующую, потом выпускаю еще раз я.
$ git remote add РАЗРАБОТЧИК git.alt:/people/РАЗРАБОТЧИК/packages/ПАКЕТ.git
$ git fetch РАЗРАБОТЧИК
Я ещё делаю
$ git fetch РАЗРАБОТЧИК 'refs/heads/*:refs/heads/*'
Если накоммитили в одно время, fast-forward не будет и некоторые
ветки придётся мержить явно.
Ну и синхронизировать периодически между собой.
Два разработчика + SVN есть в ruby.git у меня и kas.
--
Regards,
Sir Raorn.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-08-31 20:08 ` Alexey I. Froloff
@ 2008-09-01 8:34 ` Eugene Prokopiev
2008-09-01 16:26 ` Alexey I. Froloff
0 siblings, 1 reply; 13+ messages in thread
From: Eugene Prokopiev @ 2008-09-01 8:34 UTC (permalink / raw)
To: ALT Linux Team development discussions
01.09.08, Alexey I. Froloff<raorn@> написал(а):
> * Eugene Prokopiev <enp@> [080831 23:48]:
>
> > У меня тоже tar делался из ремотного бранча, но после push на
> > git.alt и clone оттуда этот ремотный бранч уже не был виден -
> > т.о. разработчик, сделавший clone, не мог просто сделать
> > git-svn fetch для обновления апстримных исходников, а должен
> > был сделать перед тем git-svn init. В вашем случае это тоже
> > так?
>
> Почти. В моём примере их надо тоже пушить явно:
>
> git push origin refs/remotes/trunk:refs/remotes/trunk
> git push origin 'refs/remotes/tags/*:refs/remotes/tags/*'
> git push origin 'refs/remotes/branches/*:refs/remotes/branches/*'
сделал, но на git.alt и в клонированном репозитарии ремотных бранчей не видно
> Правая сторона может быть и не refs/remotes/*, а refs/svn/*.
$ ls .git/refs/svn*
ls: .git/refs/svn*: No such file or directory
> Но чтобы работал git svn, локально эти ветки должны быть в
> refs/remotes/. Хотя по слухам это можно и настроить через
> .git/config, но я это пока не очень асилил.
спасибо, погляжу
> Чтобы второй разработчик мог делать git svn fetch надо либо
> скопировать кусок .git/config относящийся к svn у первого
> разработчика или сделать git svn init и расставить нужные бранчи
> в том виде как их ожидает найти git svn.
зачем тогда делать git push origin ... ?
по моим наблюдениям как раз git svn init или редактирования
.git/config достаточно - получается это вполне кошерный способ?
> > Меня именно модель взаимодействия больше всего интересует - я выпускаю
> > одну версию, другой разработчик - следующую, потом выпускаю еще раз я.
>
> $ git remote add РАЗРАБОТЧИК git.alt:/people/РАЗРАБОТЧИК/packages/ПАКЕТ.git
> $ git fetch РАЗРАБОТЧИК
это я делаю после того, как второй разработчик клонировал репозитарий,
создал свой бранч на основе моего srpms, чего-то там сделал, а я хочу
это увидеть и, возможно, смержить?
> Я ещё делаю
>
> $ git fetch РАЗРАБОТЧИК 'refs/heads/*:refs/heads/*'
можно популярно объяснить, зачем это надо?
> Если накоммитили в одно время, fast-forward не будет и некоторые
> ветки придётся мержить явно.
а бывает и неявно? можно об этом подробнее?
> Ну и синхронизировать периодически между собой.
я не очень понял, а упомянутые неявные мержи не относятся к процессу
взаимодействия между разработчиками?
> Два разработчика + SVN есть в ruby.git у меня и kas.
это хорошо, когда есть пример :)
--
С уважением,
Прокопьев Евгений
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Бранч для svn-репозитария в git
2008-09-01 8:34 ` Eugene Prokopiev
@ 2008-09-01 16:26 ` Alexey I. Froloff
0 siblings, 0 replies; 13+ messages in thread
From: Alexey I. Froloff @ 2008-09-01 16:26 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 3544 bytes --]
* Eugene Prokopiev <enp@> [080901 12:35]:
> > git push origin refs/remotes/trunk:refs/remotes/trunk
> > git push origin 'refs/remotes/tags/*:refs/remotes/tags/*'
> > git push origin 'refs/remotes/branches/*:refs/remotes/branches/*'
> сделал, но на git.alt и в клонированном репозитарии ремотных бранчей не видно
А git.alt на это как-то ругнулся? Я честно говоря не пробовал
так делать, но обработку remotes в girar краем глаза видел ;-)
> > Правая сторона может быть и не refs/remotes/*, а refs/svn/*.
> $ ls .git/refs/svn*
> ls: .git/refs/svn*: No such file or directory
Правая сторона:
$ git push origin refs/remotes/trunk:refs/svn/trunk
$ git push origin 'refs/remotes/tags/*:refs/svn/tags/*'
$ git push origin 'refs/remotes/branches/*:refs/svn/branches/*'
> > Чтобы второй разработчик мог делать git svn fetch надо либо
> > скопировать кусок .git/config относящийся к svn у первого
> > разработчика или сделать git svn init и расставить нужные бранчи
> > в том виде как их ожидает найти git svn.
> зачем тогда делать git push origin ... ?
Чтобы туда попали head'ы нужных веток и коммиты.
> по моим наблюдениям как раз git svn init или редактирования
> .git/config достаточно - получается это вполне кошерный способ?
Я это делал один раз, при чём у меня валялся какой-то тухлый
.git/svn/ от предыдужих экспериментов. Очень вероятно, что
что-то в моих действиях git сделает автоматом. В какой-то момент
он начал вывасывать все ревизии начиная с первой, новые об'екты
при этом не создавались, просто remotes/trunk перемещался по
дереву. Не помню, было ли это до удаления старого .git/svn/ или
между удалением и созданием нужных бранчей.
> > $ git remote add РАЗРАБОТЧИК git.alt:/people/РАЗРАБОТЧИК/packages/ПАКЕТ.git
> > $ git fetch РАЗРАБОТЧИК
> это я делаю после того, как второй разработчик клонировал репозитарий,
> создал свой бранч на основе моего srpms, чего-то там сделал, а я хочу
> это увидеть и, возможно, смержить?
Да. Создадутся ветки remotes/РАЗРАБОТЧИК/*.
> > $ git fetch РАЗРАБОТЧИК 'refs/heads/*:refs/heads/*'
> можно популярно объяснить, зачем это надо?
Чтобы не делать один-два-десять раз
$ git checkout branch
$ git pull . РАЗРАБОТЧИК/branch (или git pull РАЗРАБОТЧИК branch)
Но работает это только для fast-forward.
> > Если накоммитили в одно время, fast-forward не будет и некоторые
> > ветки придётся мержить явно.
> а бывает и неявно? можно об этом подробнее?
Чуть выше написано. В ruby есть svn, ветка up, куда мержится
svn/branches/ruby1_8_7, ветки с патчами и всё смержено в итоге в
master. Кирилл зарелизил 1.8.7-alt6, потом я сделал один коммит
в master (исправления для ppc). Дальше Кирилл втягивает этот мой
коммит в master и продолжает разработку.
Если он сразу проверит, не коммитил ли я чего, история будет
линейной, его коммит, мой, потом опять его. Если забудет, то
fetch 'refs/heads/*:refs/heads/*' ругнётся что fast-forward
невозможен и придётся делать pull raorn master.
Нас пока двое, пакет не очень динамично развивается, поэтому
topic-веток мы не плодим, сильно экспериментами не занимаемся.
Получается как будто в разное время коммитим в один и тот же
репозитарий.
> > Ну и синхронизировать периодически между собой.
> я не очень понял, а упомянутые неявные мержи не относятся к процессу
> взаимодействия между разработчиками?
"Неявные мержи" это fast-forward. Есть простой способ (начиная с
git 1.5.0, IIRC) попытаться сделать его для нескольких веток
сразу.
--
Regards,
Sir Raorn.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2008-09-01 16:26 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-30 16:35 [devel] Бранч для svn-репозитария в git Eugene Prokopiev
2008-08-30 16:43 ` Eugene Prokopiev
2008-08-30 21:50 ` Vitaly Ostanin
2008-08-31 7:31 ` Eugene Prokopiev
2008-08-31 13:00 ` Vitaly Ostanin
2008-08-31 13:35 ` Eugene Prokopiev
2008-08-31 14:11 ` Alexey I. Froloff
2008-08-31 14:18 ` Eugene Prokopiev
2008-08-31 16:07 ` Alexey I. Froloff
2008-08-31 19:36 ` Eugene Prokopiev
2008-08-31 20:08 ` Alexey I. Froloff
2008-09-01 8:34 ` Eugene Prokopiev
2008-09-01 16:26 ` Alexey I. Froloff
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git