ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] gear и патчи
@ 2006-11-27 12:48 Grigory Batalov
  2006-11-27 13:34 ` Aleksey Avdeev
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Grigory Batalov @ 2006-11-27 12:48 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 884 bytes --]

Здравствуйте!

Возможно, здесь обсуждалось, а я пропустил:

Можно ли (или можно ли будет) в .gear-rules указывать в качестве патчей
коммиты из git? Типа <название патча>: <откуда>-<до куда> или даже
<название патча>: <откуда1>-<до куда1>,<откуда2>-<до куда2>.

Например:
foo-0.1-alt-build.patch: f9f580742b3b499e4a0fb298511f42f482a14928:bbab731ee05b4a9211545309d9fdf2954a7e8961

Мне кажется, удобнее исправлять исходники непосредственно в git, скажем,
в бранче devel, а не обновлять от версии к версии файлы .patch. Тем более,
что последние обычно называют <package>-<version>-alt-<what>.patch, то есть
эти файлы будут появляться и исчезать при смене <version>.

Можно было бы просто паковать в SRPM модифицированное дерево исходников, но
тогда как указать на конкретное исправление пользователям других
дистрибутивов? Отсылать в наш git?

-- 
 Григорий Баталов

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 12:48 [devel] gear и патчи Grigory Batalov
@ 2006-11-27 13:34 ` Aleksey Avdeev
  2006-11-27 14:08   ` Grigory Batalov
  2006-11-27 14:01 ` Alex V. Myltsev
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 16+ messages in thread
From: Aleksey Avdeev @ 2006-11-27 13:34 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1181 bytes --]

Grigory Batalov пишет:
> Здравствуйте!
> 
> Возможно, здесь обсуждалось, а я пропустил:
> 
> Можно ли (или можно ли будет) в .gear-rules указывать в качестве патчей
> коммиты из git? Типа <название патча>: <откуда>-<до куда> или даже
> <название патча>: <откуда1>-<до куда1>,<откуда2>-<до куда2>.
> 
> Например:
> foo-0.1-alt-build.patch: f9f580742b3b499e4a0fb298511f42f482a14928:bbab731ee05b4a9211545309d9fdf2954a7e8961
2
  Судя по
<http://lists.altlinux.org/pipermail/devel/2006-October/037580.html> --
подобная функциональность ожидается, но пока в официальном gear её нет.

> 
> Мне кажется, удобнее исправлять исходники непосредственно в git, скажем,
> в бранче devel, а не обновлять от версии к версии файлы .patch. Тем более,
> что последние обычно называют <package>-<version>-alt-<what>.patch, то есть
> эти файлы будут появляться и исчезать при смене <version>.

  Для <git.alt:/people/solo/packages/sks.git> применил велосипед, в виде
скрипта git2patch.sh (<git.alt:/people/solo/packages/git2patch.git>,
более детальное описание здесь:
<http://lists.altlinux.org/pipermail/devel/2006-November/038836.html>).

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 550 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 12:48 [devel] gear и патчи Grigory Batalov
  2006-11-27 13:34 ` Aleksey Avdeev
@ 2006-11-27 14:01 ` Alex V. Myltsev
  2006-11-27 14:45   ` Grigory Batalov
  2006-11-27 14:15 ` [devel] gear и патчи Alex V. Myltsev
  2006-11-27 14:31 ` Sergey Vlasov
  3 siblings, 1 reply; 16+ messages in thread
From: Alex V. Myltsev @ 2006-11-27 14:01 UTC (permalink / raw)
  To: devel

On Mon, 27 Nov 2006 15:48:26 +0300
Grigory Batalov wrote:
> Мне кажется, удобнее исправлять исходники непосредственно в git,
> скажем, в бранче devel, а не обновлять от версии к версии
> файлы .patch.
Да. Но опять же получается, что на каждый патч нужно заводить
отдельный бранч, а потом их все мержить (в правильном порядке).

Смотрел ли кто-нибудь на Stacked git [1] и patchy git [2]?
По идее, это как раз инструменты для жонглирования патчами.

[1] http://www.procode.org/stgit/
[2] http://www.spearce.org/category/projects/scm/pg/

-- 
Best regards,
Alex V. Myltsev.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 13:34 ` Aleksey Avdeev
@ 2006-11-27 14:08   ` Grigory Batalov
  2006-11-27 14:30     ` Aleksey Avdeev
  0 siblings, 1 reply; 16+ messages in thread
From: Grigory Batalov @ 2006-11-27 14:08 UTC (permalink / raw)
  To: ALT Devel discussion list

On Mon, 27 Nov 2006 16:34:44 +0300
Aleksey Avdeev <solo@solin.spb.ru> wrote:

> > Можно ли (или можно ли будет) в .gear-rules указывать в качестве патчей
> > коммиты из git? Типа <название патча>: <откуда>-<до куда> или даже
> > <название патча>: <откуда1>-<до куда1>,<откуда2>-<до куда2>.
> > 
> > Например:
> > foo-0.1-alt-build.patch: f9f580742b3b499e4a0fb298511f42f482a14928:bbab731ee05b4a9211545309d9fdf2954a7e89612
>   Судя по
> <http://lists.altlinux.org/pipermail/devel/2006-October/037580.html> --
> подобная функциональность ожидается, но пока в официальном gear её нет.
> 
> > 
> > Мне кажется, удобнее исправлять исходники непосредственно в git, скажем,
> > в бранче devel, а не обновлять от версии к версии файлы .patch. Тем более,
> > что последние обычно называют <package>-<version>-alt-<what>.patch, то есть
> > эти файлы будут появляться и исчезать при смене <version>.
> 
>   Для <git.alt:/people/solo/packages/sks.git>

  Нет его там, есть cks.git =)

> применил велосипед, в виде
> скрипта git2patch.sh (<git.alt:/people/solo/packages/git2patch.git>,
> более детальное описание здесь:
> <http://lists.altlinux.org/pipermail/devel/2006-November/038836.html>).

  Спасибо. Я смотрел на cks, но сразу не понял, а про git2patch
  забыл.

-- 
 Григорий Баталов,
 программист
 ЗАО "Ланит-Терком"


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 12:48 [devel] gear и патчи Grigory Batalov
  2006-11-27 13:34 ` Aleksey Avdeev
  2006-11-27 14:01 ` Alex V. Myltsev
@ 2006-11-27 14:15 ` Alex V. Myltsev
  2006-11-27 14:31 ` Sergey Vlasov
  3 siblings, 0 replies; 16+ messages in thread
From: Alex V. Myltsev @ 2006-11-27 14:15 UTC (permalink / raw)
  To: devel

On Mon, 27 Nov 2006 15:48:26 +0300
Grigory Batalov wrote:
> Мне кажется, удобнее исправлять исходники непосредственно в git,
> скажем, в бранче devel, а не обновлять от версии к версии
> файлы .patch.
Да. Но опять же получается, что на каждый патч нужно заводить
отдельный бранч, перед сборкой их все мержить (в правильном 
порядке), а при обновлении исходника -- rebase'ить.

Смотрел ли кто-нибудь на Stacked git [1] и patchy git [2]?
По идее, это как раз инструменты для жонглирования патчами.

[1] http://www.procode.org/stgit/
[2] http://www.spearce.org/category/projects/scm/pg/

-- 
Best regards,
Alex V. Myltsev.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 14:08   ` Grigory Batalov
@ 2006-11-27 14:30     ` Aleksey Avdeev
  0 siblings, 0 replies; 16+ messages in thread
From: Aleksey Avdeev @ 2006-11-27 14:30 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1101 bytes --]

Grigory Batalov пишет:
> On Mon, 27 Nov 2006 16:34:44 +0300
> Aleksey Avdeev <solo@solin.spb.ru> wrote:
> 
> 
>>>Можно ли (или можно ли будет) в .gear-rules указывать в качестве патчей
>>>коммиты из git? Типа <название патча>: <откуда>-<до куда> или даже
>>><название патча>: <откуда1>-<до куда1>,<откуда2>-<до куда2>.
>>>
>>>Например:
>>>foo-0.1-alt-build.patch: f9f580742b3b499e4a0fb298511f42f482a14928:bbab731ee05b4a9211545309d9fdf2954a7e89612
>>
>>  Судя по
>><http://lists.altlinux.org/pipermail/devel/2006-October/037580.html> --
>>подобная функциональность ожидается, но пока в официальном gear её нет.
>>
>>
>>>Мне кажется, удобнее исправлять исходники непосредственно в git, скажем,
>>>в бранче devel, а не обновлять от версии к версии файлы .patch. Тем более,
>>>что последние обычно называют <package>-<version>-alt-<what>.patch, то есть
>>>эти файлы будут появляться и исчезать при смене <version>.
>>
>>  Для <git.alt:/people/solo/packages/sks.git>
> 
> 
>   Нет его там, есть cks.git =)

  Так-к... Моя крыша уже едит... :-/

-- 

С уважением. Алексей.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 550 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 12:48 [devel] gear и патчи Grigory Batalov
                   ` (2 preceding siblings ...)
  2006-11-27 14:15 ` [devel] gear и патчи Alex V. Myltsev
@ 2006-11-27 14:31 ` Sergey Vlasov
  2006-11-27 15:15   ` Aleksey Avdeev
  3 siblings, 1 reply; 16+ messages in thread
From: Sergey Vlasov @ 2006-11-27 14:31 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 4347 bytes --]

On Mon, Nov 27, 2006 at 03:48:26PM +0300, Grigory Batalov wrote:
> Можно ли (или можно ли будет) в .gear-rules указывать в качестве патчей
> коммиты из git? Типа <название патча>: <откуда>-<до куда> или даже
> <название патча>: <откуда1>-<до куда1>,<откуда2>-<до куда2>.
> 
> Например:
> foo-0.1-alt-build.patch: f9f580742b3b499e4a0fb298511f42f482a14928:bbab731ee05b4a9211545309d9fdf2954a7e8961

В последней версии gear это может быть записано в виде:

diff: f9f580742b3b499e4a0fb298511f42f482a14928:. bbab731ee05b4a9211545309d9fdf2954a7e8961:. name=foo-0.1-alt-build.patch

(в name=... можно использовать @name@, @version@, @release@,
@old_dir@, @new_dir@).  Можно также написать diff.gz или diff.bz2.
Ограничение - нельзя указывать совсем произвольные sha1, это должны
быть коммиты, предшествующие (непосредственно или через произвольное
количество промежуточных коммитов) тому коммиту, из которого
собирается пакет.

Чтобы не писать sha1 в .gear-rules, можно использовать вместо них
имена тегов, сохранённых с помощью gear-update-tag.  Хотя этот вариант
применим в основном в случае, когда генерируется один общий патч:

diff: v@version@:. .

(по умолчанию name=@new_dir@-@version@-@release@.patch, при указании
"." вместо @new_dir@ используется @name@).  Ограничения на указание
коммитов через имена тегов те же самые.

> Мне кажется, удобнее исправлять исходники непосредственно в git,
> скажем, в бранче devel, а не обновлять от версии к версии файлы
> .patch.

Тогда возникает вопрос, что делать при обновлении до новой версии.
Естественный для git вариант - объединить изменения с новой версией
через git-pull (т.е., merge), но при этом результат в общем случае уже
не представляется в виде набора патчей - можно сделать только один
общий патч от оригинальной версии к модифицированной.  Чтобы получить
какое-то одно изменение в виде патча к текущей версии, придётся
выполнять, например, git-cherry-pick в отдельной временной ветке
(тащить его в историю пакета при таком способе работы бессмысленно -
оно там уже есть, возможно, с исправлениями, внесёнными в ходе
разрешения конфликтов при merge; единственная причина делать это -
необходимость подготовки патча для передачи, например, в upstream).

Кстати, можно завести не один бранч devel, а несколько, куда разносить
изменения, относящиеся к разным по смыслу исправлениям.

Есть другой вариант - git-rebase при переходе на новую версию из
upstream; в этом случае отдельные патчи сохраняются, но теряется связь
с предыдущей историей пакета, что в новой системе сборки недопустимо.
Правда, можно восстановить эту связь через git-pull -s ours, но при
таком способе история будет засоряться многочисленными копиями одних и
тех же изменений для разных версий пакета (впрочем, в этом случае
старую историю можно будет просто отсечь при просмотре изменений,
поскольку она не будет содержать полезной информации - все изменения
относительно upstream после git-rebase будут воспроизведены в новых
коммитах, либо удалены, если они уже вошли в upstream).

> Тем более, что последние обычно называют
> <package>-<version>-alt-<what>.patch, то есть эти файлы будут
> появляться и исчезать при смене <version>.

Зачастую при смене <version> старые патчи как раз не перегенерируются,
пока окончательно не перестанут прикладываться.  В некоторых случаях
это приводит к трудновыявляемым проблемам, когда патч вроде бы ложится
на новую версию, но какие-то изменения попадают совсем не туда, куда
надо.  Теоретически алгоритм 3-way merge может быть более устойчив к
подобным ошибкам, чем patch, поскольку имеет больше информации
(информация об изменениях не ограничена размером контекста, как в
случае patch).  Хотя при выполнении git-rebase возможность получить
такую проблему сохраняется, поскольку по умолчанию (без опции --merge)
git-rebase сначала пытается приложить изменение как патч, и только в
том случае, если это не удаётся, использует 3-way merge.

> Можно было бы просто паковать в SRPM модифицированное дерево
> исходников, но тогда как указать на конкретное исправление
> пользователям других дистрибутивов? Отсылать в наш git?

Отсылать было бы хорошо в gitweb, но его у нас пока нет.  С другой
стороны, если предполагается упразднение src.rpm, какое-то средство
типа gitweb должно появиться раньше этого.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 14:01 ` Alex V. Myltsev
@ 2006-11-27 14:45   ` Grigory Batalov
  2006-11-27 15:55     ` [devel] git " Alex V. Myltsev
  0 siblings, 1 reply; 16+ messages in thread
From: Grigory Batalov @ 2006-11-27 14:45 UTC (permalink / raw)
  To: ALT Devel discussion list

On Mon, 27 Nov 2006 17:01:26 +0300
"Alex V. Myltsev" <avm@altlinux.org> wrote:

> > Мне кажется, удобнее исправлять исходники непосредственно в git,
> > скажем, в бранче devel, а не обновлять от версии к версии
> > файлы .patch.
> Да. Но опять же получается, что на каждый патч нужно заводить
> отдельный бранч, а потом их все мержить (в правильном порядке).

  Не обязательно, мне это было бы неудобно.

> Смотрел ли кто-нибудь на Stacked git [1] и patchy git [2]?
> По идее, это как раз инструменты для жонглирования патчами.
> 
> [1] http://www.procode.org/stgit/

  По моему, это вполне самостоятельный проект (на Питоне). Для gear
  сгодилось бы решение попроще.
  Оказывается, vsu@ уже кое-что сделал:

http://lists.altlinux.org/pipermail/devel/2006-October/037580.html

> [2] http://www.spearce.org/category/projects/scm/pg/

  Ужасный сайт =). Где там исходники?

-- 
 Григорий Баталов


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 14:31 ` Sergey Vlasov
@ 2006-11-27 15:15   ` Aleksey Avdeev
  2006-11-27 15:46     ` Grigory Batalov
  2006-11-27 16:42     ` Sergey Vlasov
  0 siblings, 2 replies; 16+ messages in thread
From: Aleksey Avdeev @ 2006-11-27 15:15 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2587 bytes --]

Sergey Vlasov пишет:
> On Mon, Nov 27, 2006 at 03:48:26PM +0300, Grigory Batalov wrote:
> 
>>Можно ли (или можно ли будет) в .gear-rules указывать в качестве патчей
>>коммиты из git? Типа <название патча>: <откуда>-<до куда> или даже
>><название патча>: <откуда1>-<до куда1>,<откуда2>-<до куда2>.
>>
>>Например:
>>foo-0.1-alt-build.patch: f9f580742b3b499e4a0fb298511f42f482a14928:bbab731ee05b4a9211545309d9fdf2954a7e8961
> 
> 
> В последней версии gear это может быть записано в виде:

  Имеется в виду, gear-1.1.0?

> 
> diff: f9f580742b3b499e4a0fb298511f42f482a14928:. bbab731ee05b4a9211545309d9fdf2954a7e8961:. name=foo-0.1-alt-build.patch
> 
> (в name=... можно использовать @name@, @version@, @release@,
> @old_dir@, @new_dir@).  Можно также написать diff.gz или diff.bz2.
> Ограничение - нельзя указывать совсем произвольные sha1, это должны
> быть коммиты, предшествующие (непосредственно или через произвольное
> количество промежуточных коммитов) тому коммиту, из которого
> собирается пакет.
> 
...
> 
>>Мне кажется, удобнее исправлять исходники непосредственно в git,
>>скажем, в бранче devel, а не обновлять от версии к версии файлы
>>.patch.
> 
> 
> Тогда возникает вопрос, что делать при обновлении до новой версии.
> Естественный для git вариант - объединить изменения с новой версией
> через git-pull (т.е., merge), но при этом результат в общем случае уже
> не представляется в виде набора патчей - можно сделать только один
> общий патч от оригинальной версии к модифицированной.  Чтобы получить
> какое-то одно изменение в виде патча к текущей версии, придётся
> выполнять, например, git-cherry-pick в отдельной временной ветке
> (тащить его в историю пакета при таком способе работы бессмысленно -
> оно там уже есть, возможно, с исправлениями, внесёнными в ходе
> разрешения конфликтов при merge; единственная причина делать это -
> необходимость подготовки патча для передачи, например, в upstream).
> 
> Кстати, можно завести не один бранч devel, а несколько, куда разносить
> изменения, относящиеся к разным по смыслу исправлениям.

  +1, особенно -- если деление по бранчм осмысленное.

> 
>>Можно было бы просто паковать в SRPM модифицированное дерево
>>исходников, но тогда как указать на конкретное исправление
>>пользователям других дистрибутивов? Отсылать в наш git?
> 
> 
> Отсылать было бы хорошо в gitweb, но его у нас пока нет.  С другой
> стороны, если предполагается упразднение src.rpm, какое-то средство
> типа gitweb должно появиться раньше этого.

  +1

-- 

С уважением. Алексей.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 550 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 15:15   ` Aleksey Avdeev
@ 2006-11-27 15:46     ` Grigory Batalov
  2006-11-27 16:28       ` Aleksey Avdeev
  2006-11-27 16:42     ` Sergey Vlasov
  1 sibling, 1 reply; 16+ messages in thread
From: Grigory Batalov @ 2006-11-27 15:46 UTC (permalink / raw)
  To: ALT Devel discussion list

On Mon, 27 Nov 2006 18:15:24 +0300
Aleksey Avdeev <solo@solin.spb.ru> wrote:

> >>Мне кажется, удобнее исправлять исходники непосредственно в git,
> >>скажем, в бранче devel, а не обновлять от версии к версии файлы
> >>.patch.
> > 
> > 
> > Тогда возникает вопрос, что делать при обновлении до новой версии.
> > Естественный для git вариант - объединить изменения с новой версией
> > через git-pull (т.е., merge), но при этом результат в общем случае уже
> > не представляется в виде набора патчей - можно сделать только один
> > общий патч от оригинальной версии к модифицированной.  Чтобы получить
> > какое-то одно изменение в виде патча к текущей версии, придётся
> > выполнять, например, git-cherry-pick в отдельной временной ветке
> > (тащить его в историю пакета при таком способе работы бессмысленно -
> > оно там уже есть, возможно, с исправлениями, внесёнными в ходе
> > разрешения конфликтов при merge; единственная причина делать это -
> > необходимость подготовки патча для передачи, например, в upstream).
> > 
> > Кстати, можно завести не один бранч devel, а несколько, куда разносить
> > изменения, относящиеся к разным по смыслу исправлениям.
> 
>   +1, особенно -- если деление по бранчм осмысленное.

  Теперь я понял, зачем у тебя в cks.git столько бранчей =)

-- 
 Григорий Баталов


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] git и патчи
  2006-11-27 14:45   ` Grigory Batalov
@ 2006-11-27 15:55     ` Alex V. Myltsev
  2006-11-27 16:41       ` Sergey Vlasov
  0 siblings, 1 reply; 16+ messages in thread
From: Alex V. Myltsev @ 2006-11-27 15:55 UTC (permalink / raw)
  To: devel

On Mon, 27 Nov 2006 17:45:40 +0300
Grigory Batalov wrote:
> > [1] http://www.procode.org/stgit/
>   По моему, это вполне самостоятельный проект (на Питоне). Для gear
>   сгодилось бы решение попроще.
gear -- это один из инструментов, который позволяет из репозитария
легко собрать пакет. А уж как я работаю с репозитарием, чем его мержу,
обновляю и выкладываю на git.alt -- к gear никак не относится.

Даже исправлю, пожалуй, subject треда.

>   Оказывается, vsu@ уже кое-что сделал:
> http://lists.altlinux.org/pipermail/devel/2006-October/037580.html
Получается небольшой SCM внутри gear, который зачем-то хранит свою
служебную информацию не в .git, а в файлах репозитория. Это, конечно,
удобнее, чем хранить патчи в файлах, но не намного. Хочется какого-то
решения gitовой проблемы gitовыми средствами.

Я возлагаю ещё некоторые надежды на DarcsGit: может быть, он сумеет
принести в git лёгкость работы с патчами. Но у нас пока darcs без git.

-- 
Best regards,
Alex V. Myltsev.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 15:46     ` Grigory Batalov
@ 2006-11-27 16:28       ` Aleksey Avdeev
  0 siblings, 0 replies; 16+ messages in thread
From: Aleksey Avdeev @ 2006-11-27 16:28 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2139 bytes --]

Grigory Batalov пишет:
> On Mon, 27 Nov 2006 18:15:24 +0300
> Aleksey Avdeev <solo@solin.spb.ru> wrote:
> 
> 
>>>>Мне кажется, удобнее исправлять исходники непосредственно в git,
>>>>скажем, в бранче devel, а не обновлять от версии к версии файлы
>>>>.patch.
>>>
>>>
>>>Тогда возникает вопрос, что делать при обновлении до новой версии.
>>>Естественный для git вариант - объединить изменения с новой версией
>>>через git-pull (т.е., merge), но при этом результат в общем случае уже
>>>не представляется в виде набора патчей - можно сделать только один
>>>общий патч от оригинальной версии к модифицированной.  Чтобы получить
>>>какое-то одно изменение в виде патча к текущей версии, придётся
>>>выполнять, например, git-cherry-pick в отдельной временной ветке
>>>(тащить его в историю пакета при таком способе работы бессмысленно -
>>>оно там уже есть, возможно, с исправлениями, внесёнными в ходе
>>>разрешения конфликтов при merge; единственная причина делать это -
>>>необходимость подготовки патча для передачи, например, в upstream).
>>>
>>>Кстати, можно завести не один бранч devel, а несколько, куда разносить
>>>изменения, относящиеся к разным по смыслу исправлениям.
>>
>>  +1, особенно -- если деление по бранчм осмысленное.
> 
> 
>   Теперь я понял, зачем у тебя в cks.git столько бранчей =)


  Там бранчи 3x классов:

1. "Технические" -- относительно независимые части пакета, могущие иметь
_отельную_ от остальных частей историю. Это сам спек, alt`специфичные
конфиги, патчи и пр.... Общие свойство: апстрим ими не занимается
(точнее -- ими могут заниматься несколько независимых апстримов).
Формальный признак: отдельная тег %source*/%patch* в спеке.

2. Бранчи для генерации патчей (на основе тегов).

3. Технологический клей. Это такие вещи как .gear-rules и, в случаи
cks.git, git2patch.sh.

  Не смотря на то, что все эти сущности в конечном итоге и создают
пакет, но жить и развиваться они могут по разным законам. Думаю, что
держать их обособленными -- нелишне, особенно если инструмент обеспечит
прозрачность работы при таком делении.

-- 

С уважением. Алексей.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 550 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] git и патчи
  2006-11-27 15:55     ` [devel] git " Alex V. Myltsev
@ 2006-11-27 16:41       ` Sergey Vlasov
  2006-11-27 22:54         ` [devel] [JT] gear SCM Alex V. Myltsev
  0 siblings, 1 reply; 16+ messages in thread
From: Sergey Vlasov @ 2006-11-27 16:41 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1527 bytes --]

On Mon, Nov 27, 2006 at 06:55:55PM +0300, Alex V. Myltsev wrote:
> >   Оказывается, vsu@ уже кое-что сделал:
> > http://lists.altlinux.org/pipermail/devel/2006-October/037580.html
> Получается небольшой SCM внутри gear, который зачем-то хранит свою
> служебную информацию не в .git, а в файлах репозитория. Это, конечно,
> удобнее, чем хранить патчи в файлах, но не намного. Хочется какого-то
> решения gitовой проблемы gitовыми средствами.

Это не SCM, а решение другой проблемы - обеспечения идентичности
результатов применения gear к указанному коммиту вне зависимости от
содержимого .git/refs/ в репозитории.  По этой причине нельзя просто
использовать в .gear-rules имена тегов - во время выполнения gear эти
теги вполне могут отсутствовать в .git/refs/tags/, или их имена могут
указывать на совершенно другие объекты.  Если использовать в
.gear-rules только явные sha1, сохранять в .gear-tags/ ничего не
нужно, однако такой способ работы неудобен.

В принципе можно было бы обойтись без сохранения содержимого объектов
tag в файлах, оставив только список ссылок на коммиты (и так было в
первоначальной реализации).  Сейчас единственная польза от этих
объектов в том, что сохраняется некоторая информация об идентичности
использованного коммита тому, который был сделан в upstream (в
частности, тег может содержать подпись GPG).  Результат работы
git-archive при передаче тега совпадает с результатом, получаемым при
передаче коммита (в заголовок пишется sha1 коммита, sha1 тега не
сохраняется).

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] gear и патчи
  2006-11-27 15:15   ` Aleksey Avdeev
  2006-11-27 15:46     ` Grigory Batalov
@ 2006-11-27 16:42     ` Sergey Vlasov
  1 sibling, 0 replies; 16+ messages in thread
From: Sergey Vlasov @ 2006-11-27 16:42 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 801 bytes --]

On Mon, Nov 27, 2006 at 06:15:24PM +0300, Aleksey Avdeev wrote:
> Sergey Vlasov пишет:
> > On Mon, Nov 27, 2006 at 03:48:26PM +0300, Grigory Batalov wrote:
> > 
> >>Можно ли (или можно ли будет) в .gear-rules указывать в качестве патчей
> >>коммиты из git? Типа <название патча>: <откуда>-<до куда> или даже
> >><название патча>: <откуда1>-<до куда1>,<откуда2>-<до куда2>.
> >>
> >>Например:
> >>foo-0.1-alt-build.patch: f9f580742b3b499e4a0fb298511f42f482a14928:bbab731ee05b4a9211545309d9fdf2954a7e8961
> > 
> > 
> > В последней версии gear это может быть записано в виде:
> 
>   Имеется в виду, gear-1.1.0?

Да, в этой версии директива diff уже доступна.

> > diff: f9f580742b3b499e4a0fb298511f42f482a14928:. bbab731ee05b4a9211545309d9fdf2954a7e8961:. name=foo-0.1-alt-build.patch

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] [JT] gear SCM
  2006-11-27 16:41       ` Sergey Vlasov
@ 2006-11-27 22:54         ` Alex V. Myltsev
  2006-11-27 23:03           ` Dmitry V. Levin
  0 siblings, 1 reply; 16+ messages in thread
From: Alex V. Myltsev @ 2006-11-27 22:54 UTC (permalink / raw)
  To: devel

On Mon, 27 Nov 2006 19:41:10 +0300
Sergey Vlasov wrote:
> On Mon, Nov 27, 2006 at 06:55:55PM +0300, Alex V. Myltsev wrote:
> > > http://lists.altlinux.org/pipermail/devel/2006-October/037580.html
> > Получается небольшой SCM внутри gear
> Это не SCM, а решение другой проблемы - обеспечения идентичности
> результатов применения gear к указанному коммиту вне зависимости от
> содержимого .git/refs/ в репозитории.
Типичная задача SCM -- по некоторому магическому идентификатору ("тэг",
"SHA1", "revision" etc) однозначно восстановить состояние исходников.

Другой вопрос, что многие SCM решают и другие задачи. Например, git
умеет построчно сравнивать два состояния (git diff), а gear нет
(максимум, что можно получить имеющимися средствами -- дифф,
заменяющий sha1 на sha1 -- not much help); darcs кое-как умеет
объединять две ветки разработки (darcs pull), а gear нет (нет
утилиты gear-merge, которая бы слила две ветки, одновременно
исправляя по необходимости содержимое gear-rules).

Anyway, my point is this: в gear сейчас две части -- 
1) инструмент для сборки пакета из репозитория и
2) наросшая на него SCM.
Эта вторая часть имеет право на существование, но я ещё попробую
поискать ей замену; вполне вероятно, что patch management'ом над GIT
кто-нибудь уже занимался и написал для этого что-нибудь не
ALT-специфичное. Ну если нет, тогда надо gear дописывать, конечно.

-- 
Best regards,
Alex V. Myltsev.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [devel] [JT] gear SCM
  2006-11-27 22:54         ` [devel] [JT] gear SCM Alex V. Myltsev
@ 2006-11-27 23:03           ` Dmitry V. Levin
  0 siblings, 0 replies; 16+ messages in thread
From: Dmitry V. Levin @ 2006-11-27 23:03 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 750 bytes --]

On Tue, Nov 28, 2006 at 01:54:56AM +0300, Alex V. Myltsev wrote:
[...]
> Anyway, my point is this: в gear сейчас две части -- 
> 1) инструмент для сборки пакета из репозитория и
> 2) наросшая на него SCM.
> Эта вторая часть имеет право на существование, но я ещё попробую
> поискать ей замену; вполне вероятно, что patch management'ом над GIT
> кто-нибудь уже занимался и написал для этого что-нибудь не
> ALT-специфичное.

Это точно существует, ты же сам приводил пример двух таких "что-нибудь".

> Ну если нет, тогда надо gear дописывать, конечно.

Не знаю, существует ли универсальное и удобное средство.
Но чем больше патчей, тем больше это похоже на ответвление,
которое удобно поддерживать средствами самого GIT.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2006-11-27 23:03 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-11-27 12:48 [devel] gear и патчи Grigory Batalov
2006-11-27 13:34 ` Aleksey Avdeev
2006-11-27 14:08   ` Grigory Batalov
2006-11-27 14:30     ` Aleksey Avdeev
2006-11-27 14:01 ` Alex V. Myltsev
2006-11-27 14:45   ` Grigory Batalov
2006-11-27 15:55     ` [devel] git " Alex V. Myltsev
2006-11-27 16:41       ` Sergey Vlasov
2006-11-27 22:54         ` [devel] [JT] gear SCM Alex V. Myltsev
2006-11-27 23:03           ` Dmitry V. Levin
2006-11-27 14:15 ` [devel] gear и патчи Alex V. Myltsev
2006-11-27 14:31 ` Sergey Vlasov
2006-11-27 15:15   ` Aleksey Avdeev
2006-11-27 15:46     ` Grigory Batalov
2006-11-27 16:28       ` Aleksey Avdeev
2006-11-27 16:42     ` 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