* [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