ALT Linux Team development discussions
 help / color / mirror / Atom feed
* 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

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

* 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

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