* [devel] git question. @ 2008-12-18 10:03 Denis Medvedev 2008-12-18 11:07 ` Damir Shayhutdinov ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Denis Medvedev @ 2008-12-18 10:03 UTC (permalink / raw) To: ALT Linux Team development discussions Добрый день! Какая правильная процедура поднятия версии при работе в git? У меня был xxx-1.0.tar.gz Я его залил в гит, помучал(коммиты есть), опакетил для сизифа. Вышел xxx-2.0.tar.gz Я попробовал сделать следующее: git-branch 2.0 распаковал туда архив git-commit -a git-checkout master git-merge 2.0 Все успешно проехало... но мои изменения-адаптации к cизифу были благополучно выкинуты и заменены новой версией файлов! Что я не так делаю? Как правильно? С уважением Денис Медведев ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 10:03 [devel] git question Denis Medvedev @ 2008-12-18 11:07 ` Damir Shayhutdinov 2008-12-18 11:22 ` Alexey Morozov 2008-12-18 12:05 ` Sergey Vlasov 2 siblings, 0 replies; 9+ messages in thread From: Damir Shayhutdinov @ 2008-12-18 11:07 UTC (permalink / raw) To: ALT Linux Team development discussions > Какая правильная процедура поднятия версии при работе в git? > У меня был xxx-1.0.tar.gz > Я его залил в гит, помучал(коммиты есть), опакетил для сизифа. > Вышел xxx-2.0.tar.gz > Я попробовал сделать следующее: > git-branch 2.0 > распаковал туда архив > git-commit -a > git-checkout master > git-merge 2.0 > Все успешно проехало... но мои изменения-адаптации к cизифу были благополучно выкинуты и заменены новой версией файлов! > Что я не так делаю? Как правильно? Правильнее было бы сделать ветку типа upstream. В нее распаковать 1.0, закоммитить. Потом ее смержить в мастер, а там внести свои сизифные изменения. При выходе 2.0 перейти в ветку upstream. Там распаковать 2.0, закоммитить. Дальше смержить в мастер. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 10:03 [devel] git question Denis Medvedev 2008-12-18 11:07 ` Damir Shayhutdinov @ 2008-12-18 11:22 ` Alexey Morozov 2008-12-17 15:50 ` Andrew V. Stepanov ` (2 more replies) 2008-12-18 12:05 ` Sergey Vlasov 2 siblings, 3 replies; 9+ messages in thread From: Alexey Morozov @ 2008-12-18 11:22 UTC (permalink / raw) To: devel On Thursday 18 December 2008 16:03:17 Denis Medvedev wrote: > Добрый день! > Какая правильная процедура поднятия версии при работе в git? > У меня был xxx-1.0.tar.gz > Я его залил в гит, помучал(коммиты есть), опакетил для сизифа. > Вышел xxx-2.0.tar.gz > Я попробовал сделать следующее: > git-branch 2.0 > распаковал туда архив > git-commit -a > git-checkout master > git-merge 2.0 > Все успешно проехало... но мои изменения-адаптации к cизифу были > благополучно выкинуты и заменены новой версией файлов! Что я не так делаю? > Как правильно? Вероятнее всего, правильно примерно так: 1. есть ветка с апстримовскими сорцами, назовём её, скажем, upstream. в неё заливаются, как есть, сорцы версии 1.0, желательно в распакованном виде. Ставим метку (что-то типа upstream-1.0) 2. если нужны фиксы, находясь в этой точке (ветка upstream, пометка upstream/1.0) создаем бранч(и) для фиксов. В простейшем случае это будет 1 бранч, в котором будут накапливаться коммиты, исправляющие апстрим: git checkout -b fixes. По сути, в ветке fixes будут находиться исходники в том состоянии, из которого Вы потом собираете rpm. Ставим соответствующую метку, например, fixes-1.0-alt1. 3. в момент выхода 2.0 сорцы заливаются в ветку upstream, ставится пометка upstream-2.0. Таким образом, git diff upstream-1.0..upstream-2.0 даст разницу между первой и второй версиями. 4. Далее "апгрейдим" патчи. Переходим в ветку fixes и говорим там git merge upstream. Разруливаем конфликты, в итоге получаем в ветке fixes "пофикшенную" версию upstream. Ставим соответствующую метку. 5. Что касается собственно пакетирования, то здесь возможны нюансы. Совсем страшный способ заключается в том, что для spec'а, .gear-rules и прочего сугубо мэнтейнерского хозяйства делается _отдельная_ ветка (назовём её srpm), не связанная поначалу ни c одной из существующих веток (как это сделать - вопрос отдельный). Далее делаем следующие пассы руками, головой и другими частями тела: 5.1. Находясь в ветке srpm говорим: git merge -s ours --no-commit upstream-2.0 fixes-2.0 (или любой другой требуемой Вам версии) 5.2. Вписываем соответствующую версию в спек, желательно, непосредственно в поле Version: 5.2. В Source в спеке пишем %name-%version.tar.bz2 - здесь будут апстримовские исходники. 5.3. В Patch пишем %name-%version-alt_fixes.patch - здесь будет кумулятивный патч из ветки fixes. Можно сделать несколько патчей, по темам, но тогда придётся их описывать более аккуратно (см. ниже). 5.4. Вписываем подходящий релиз и ченджлог. 5.5. В .gear-rules пишем что-то навроде следующего: tar.bz2: upstream-@version@:. <здесь параметры для gear, поиграйтесь с тем, чтобы достичь требуемого вида архива> diff: upstream-@version@:. fixes-@version@-@release@:. <остальные параметры для diff> 5.6. Добавляем (git add) спек и .gear-rules 5.7. Не забываем сказать gear-update-tag -a 5.8. Коммиттим Собственно, всё, можно говорить gear --rpmbuild -- rpmbuild -bs --nodeps --define "_srcrpmdir /home/alex/RPM/hsh/queue/" Это, в общем, один из самых страшных способов, он позволяет напрочь разделить апстримовскую, "фиксящую" и мэнтейнерскую части (в последнюю могут войти, например, патчи или какие-нибудь дополнительные файлы, которые интересны только в рамках ALTLinux). Для тех, кому вышеперечисленное кажется сильно страшным, можно, не мудрствуя, после шага 4 засунуть спек непосредственно в ветку fixes и написать в .gear-rules: tar.bz2:. Но это уже на любителя. P.S. Пишу, тыкскыть, на память, не обессудьте, если где-то надо подрихтовать. Но в целом - работает, "проверено на себе" (tm). С уважением, Алексей Морозов ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 11:22 ` Alexey Morozov @ 2008-12-17 15:50 ` Andrew V. Stepanov 2008-12-18 11:43 ` Dmitriy M. Maslennikov 2008-12-18 18:59 ` Slava Semushin 2 siblings, 0 replies; 9+ messages in thread From: Andrew V. Stepanov @ 2008-12-17 15:50 UTC (permalink / raw) To: devel Alexey Morozov: > On Thursday 18 December 2008 16:03:17 Denis Medvedev wrote: > > Добрый день! > > Какая правильная процедура поднятия версии при работе в git? > > У меня был xxx-1.0.tar.gz > > Я его залил в гит, помучал(коммиты есть), опакетил для сизифа. > > Вышел xxx-2.0.tar.gz > > Я попробовал сделать следующее: > > git-branch 2.0 > > распаковал туда архив > > git-commit -a > > git-checkout master > > git-merge 2.0 > > Все успешно проехало... но мои изменения-адаптации к cизифу были > > благополучно выкинуты и заменены новой версией файлов! Что я не так делаю? > > Как правильно? > > Вероятнее всего, правильно примерно так: > > 1. есть ветка с апстримовскими сорцами, назовём её, скажем, upstream. > в неё заливаются, как есть, сорцы версии 1.0, желательно в распакованном виде. > Ставим метку (что-то типа upstream-1.0) Если в распакованом, тогда убедиться что в исходном дереве нету пустых каталогов. -- stanv -- http://andrusha.googlepages.com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 11:22 ` Alexey Morozov 2008-12-17 15:50 ` Andrew V. Stepanov @ 2008-12-18 11:43 ` Dmitriy M. Maslennikov 2008-12-18 12:25 ` Led 2008-12-18 18:59 ` Slava Semushin 2 siblings, 1 reply; 9+ messages in thread From: Dmitriy M. Maslennikov @ 2008-12-18 11:43 UTC (permalink / raw) To: ALT Linux Team development discussions 18 декабря 2008 г. 14:22 пользователь Alexey Morozov <morozov_ml@ngs.ru> написал: > 5. Что касается собственно пакетирования, то здесь возможны нюансы. Совсем > страшный способ заключается в том, что для spec'а, .gear-rules и прочего > сугубо мэнтейнерского хозяйства делается _отдельная_ ветка (назовём её srpm), > не связанная поначалу ни c одной из существующих веток (как это сделать - > вопрос отдельный). Можно подробнее об этом отдельном вопросе? -- Dmitriy M. Maslennikov rlz@etersoft.ru rlz@altlinux.org maslennikovdm@gmail.com master@armory.ru ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 11:43 ` Dmitriy M. Maslennikov @ 2008-12-18 12:25 ` Led 0 siblings, 0 replies; 9+ messages in thread From: Led @ 2008-12-18 12:25 UTC (permalink / raw) To: ALT Linux Team development discussions On Thursday 18 December 2008 13:43:12 Dmitriy M. Maslennikov wrote: > 18 декабря 2008 г. 14:22 пользователь Alexey Morozov > > <morozov_ml@ngs.ru> написал: > > 5. Что касается собственно пакетирования, то здесь возможны нюансы. > > Совсем страшный способ заключается в том, что для spec'а, .gear-rules и > > прочего сугубо мэнтейнерского хозяйства делается _отдельная_ ветка > > (назовём её srpm), не связанная поначалу ни c одной из существующих веток > > (как это сделать - вопрос отдельный). > > Можно подробнее об этом отдельном вопросе? http://github.com/jwiegley/git-scripts/tree/master/git-empty-branch Только в таком виде он опасен. Надо бы в него добавить проверку на наличие аргумента (имя бранча) и убедится, что такого бранча ещё не существует. Ну и git commit --allow-empty -m "..." добавить в конце. -- Led ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 11:22 ` Alexey Morozov 2008-12-17 15:50 ` Andrew V. Stepanov 2008-12-18 11:43 ` Dmitriy M. Maslennikov @ 2008-12-18 18:59 ` Slava Semushin 2008-12-19 6:14 ` Vladimir V. Kamarzin 2 siblings, 1 reply; 9+ messages in thread From: Slava Semushin @ 2008-12-18 18:59 UTC (permalink / raw) To: ALT Linux Team development discussions 18 декабря 2008 г. 17:22 пользователь Alexey Morozov <morozov_ml%ngs.ru> написал: [...] > 5.7. Не забываем сказать gear-update-tag -a Кто бы ещё описал что делает эта программа и в каких случаях/схемах использования gear она используется.. Она нужна только когда патчи в отдельных бранчах и генеряться автоматически? Или и для обычных репозиториев, созданных с помощью gear-srpmimport годится? > 5.8. Коммиттим > > Собственно, всё, можно говорить > > gear --rpmbuild -- > rpmbuild -bs --nodeps --define "_srcrpmdir /home/alex/RPM/hsh/queue/" gear-rpm -bs --nodeps --define "_srcrpmdir /home/alex/RPM/hsh/queue/" Кажется это полный эквивалент, только более короткий и запоминабельный. -- + Slava Semushin | slava.semushin @ gmail.com + ALT Linux Team | php-coder @ altlinux.ru ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 18:59 ` Slava Semushin @ 2008-12-19 6:14 ` Vladimir V. Kamarzin 0 siblings, 0 replies; 9+ messages in thread From: Vladimir V. Kamarzin @ 2008-12-19 6:14 UTC (permalink / raw) To: ALT Linux Team development discussions >>>>> On 18 Dec 2008 at 23:59 "SS" == Slava Semushin writes: SS> 18 декабря 2008 г. 17:22 пользователь Alexey Morozov SS> <morozov_ml%ngs.ru> написал: SS> [...] >> 5.7. Не забываем сказать gear-update-tag -a SS> Кто бы ещё описал что делает эта программа и в каких случаях/схемах SS> использования gear она используется.. http://www.altlinux.org/Gear/tags и мана недостаточно для понимания? -- vvk ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] git question. 2008-12-18 10:03 [devel] git question Denis Medvedev 2008-12-18 11:07 ` Damir Shayhutdinov 2008-12-18 11:22 ` Alexey Morozov @ 2008-12-18 12:05 ` Sergey Vlasov 2 siblings, 0 replies; 9+ messages in thread From: Sergey Vlasov @ 2008-12-18 12:05 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 784 bytes --] On Thu, Dec 18, 2008 at 01:03:17PM +0300, Denis Medvedev wrote: > Какая правильная процедура поднятия версии при работе в git? > У меня был xxx-1.0.tar.gz > Я его залил в гит, помучал(коммиты есть), опакетил для сизифа. > Вышел xxx-2.0.tar.gz > Я попробовал сделать следующее: > git-branch 2.0 Бранч надо создавать от того коммита, который содержал неизменённые исходники предыдущей версии. Т.е., теперь придётся найти этот коммит (например, в gitk), после чего выполнить git checkout -b upstream $commit_with_old_version Далее обновить исходники (например, через gear-update), закоммитить изменения, после чего git checkout master git merge upstream При следущих обновлениях можно просто добавлять новые версии в бранч upstream и мержить в master. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2008-12-19 6:14 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-12-18 10:03 [devel] git question Denis Medvedev 2008-12-18 11:07 ` Damir Shayhutdinov 2008-12-18 11:22 ` Alexey Morozov 2008-12-17 15:50 ` Andrew V. Stepanov 2008-12-18 11:43 ` Dmitriy M. Maslennikov 2008-12-18 12:25 ` Led 2008-12-18 18:59 ` Slava Semushin 2008-12-19 6:14 ` Vladimir V. Kamarzin 2008-12-18 12:05 ` Sergey Vlasov
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