ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] diff in .gear-rules
@ 2008-10-17 11:54 Grigory Batalov
  2008-10-17 14:26 ` Andrey Rahmatullin
  2008-10-17 14:45 ` Pavel Wolneykien
  0 siblings, 2 replies; 7+ messages in thread
From: Grigory Batalov @ 2008-10-17 11:54 UTC (permalink / raw)
  To: devel

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

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

Можно ли заставить директиву diff из .gear-rules игнорировать появление
новых файлов? Т.е. вместо "diff -ruN" запускать "diff -ru".
И если нельзя, то как сделать, чтобы было можно? =)

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

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

* Re: [devel] diff in .gear-rules
  2008-10-17 11:54 [devel] diff in .gear-rules Grigory Batalov
@ 2008-10-17 14:26 ` Andrey Rahmatullin
  2008-10-17 20:45   ` Grigory Batalov
  2008-10-17 14:45 ` Pavel Wolneykien
  1 sibling, 1 reply; 7+ messages in thread
From: Andrey Rahmatullin @ 2008-10-17 14:26 UTC (permalink / raw)
  To: devel

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

On Fri, Oct 17, 2008 at 03:54:39PM +0400, Grigory Batalov wrote:
> Можно ли заставить директиву diff из .gear-rules игнорировать появление
> новых файлов? Т.е. вместо "diff -ruN" запускать "diff -ru".
> И если нельзя, то как сделать, чтобы было можно? =)
А зачем? По-моему, это противоречит основной идее.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):

> народ, а какой параметр можно указать в загрузчике, чтобы
> система загрузилась в init 1.
1
		-- genix in community@

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

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

* Re: [devel] diff in .gear-rules
  2008-10-17 11:54 [devel] diff in .gear-rules Grigory Batalov
  2008-10-17 14:26 ` Andrey Rahmatullin
@ 2008-10-17 14:45 ` Pavel Wolneykien
  2008-10-17 20:08   ` Konstantin Baev
  1 sibling, 1 reply; 7+ messages in thread
From: Pavel Wolneykien @ 2008-10-17 14:45 UTC (permalink / raw)
  To: ALT Linux Team development discussions


Grigory Batalov <bga@altlinux.org> wrote:
> Можно ли заставить директиву diff из .gear-rules игнорировать появление
> новых файлов? Т.е. вместо "diff -ruN" запускать "diff -ru".
> И если нельзя, то как сделать, чтобы было можно? =)

  Пользуясь случаем, хочу поделиться опытом, как я вчера
бэкпортировал xlock.

  Значит дело было так. 

                                * * *

  Жил был репозиторий и было у него 3 бранча:

  upstream
  add-icons
  pam.d

  В первом лежали исходные файлы заморские, с tux.org взятые, версии
5.27. В втором иконки расписные, разных размеров. А в третьем файлы
конфигурационные большой важности.

  И было у Апстрима два сына:

  -- upstream
   |-- fix-install-mode
   |-- pam-integration

   И хранили они копии файлов, доставшихся им от отца. Первый сын был
по натуре консерватором и только один файл у него был изменён для
лучшей установки. А второй сын потокал прогрессу и новый код добавил сразу
в три файла.

  И настало время сборки и пришёл тогда Повелитель.

  * master
    upstream
      fix-install-mode
      pam-integration
    add-icons
    pam.d

  Расставил он теги по бранчам, обозначив тем самым кому на сборку
приходить. 

  upstream v5.27
    fix-install-mode imode-5.27
    pam-integration pam-integ-1.0
  add-icons icons-1.0
  pam.d pam.d-1.0

  И взял он тогда Шестерни могучие и приказал им:

  tar.gz: v@version@:xlockmore
  tar.gz: icons-1.0:icons name=@name@-@version@-icons
  tar: pam.d-1.0:pam.d name=@name@-@version@-pam.d
  diff: v@version@:xlockmore imode-5.27:xlockmore name=install-mode.patch
  diff: v@version@:xlockmore pam-integ-1.0:xlockmore name=pam-integration.patch

  Словом "@version@" значение "5.27" обозначив.

  Заскрежетали Шестерни и остановились, сказав: "Tag is not an ancestor
of current HEAD".

  Взял тогда Повелитель и соединил всех кого отметил вместе, и заключил в
себе:

  * master: v5.27--icons-1.0--pam.d-1.0--imode-5.27--pam-integ-1.0--HEAD

  Завертелись тогда Шестерни и собрался пакет новёхонький, пропатченный.

  Прошёл день, два и захотелось собрать пакет старый, надёжный, но тоже
на манер нового пропатченный. И появился тогда в репозитории новый
бранч в который были записаны исходные файлы старые, проверенные:

  * branch-4.0 v5.22
    master
    upstream v5.27
      fix-install-mode imode-5.27
      pam-integration pam-integ-1.0
    add-icons icons-1.0
    pam.d pam.d-1.0

  И задумал Четвёртый как Повелитель, всё в себе объединить. Сначала
взял он "icons-1.0" и "pam.d-1.0", и возрадовался уже, так всё у него
шло хорошо! Но вот пришёл к нему "imode-5.27" и захлестнула бедного
Четвёртого волна изменений конфликтных, и сгинул он под ней!

  И решено тогда было на помощь премудрость машинную призвать. И снова
появился Четвёртый, но не сам по себе, а как потомок Апстрима:

  master
  upstream v5.27
    fix-install-mode imode-5.27
    pam-integration pam-integ-1.0
    * branch-4.0
  add-icons icons-1.0
  pam.d pam.d-1.0

  Имел новый Четвёртый слабость к версиям старым, надёжным. Поэтому
заменил он множество новых файлов, доставшихся ему от отца, старыми,
понизив версию дистрибутива до 5.22, о чём провозгласил, тег установив с
аннотацией в красочной рамке.

  * branch-4.0 v5.22.

  Дальше нужно ему было в себе всех своих братьев и друзей объединить, к
сборке готовясь. Сначала как и прежде, взял он "icons-1.0" и
"pam.d-1.0", которые влились в него без возражений. И вот подошёл
"imode-5.27", но будучи братом кровным Четвёртого, только отличие своё
от отца ему передал, сработала премудрость машинная! Четвёртый обозначил
этот знаменательный момент тегом "v5.22-p0". Другой его брат,
"pam-integ-1.0" так же поступить хотел, и лишь небольшой конфликт у них
возник. Поспорили братья немного и помирились, свою дружбу другим тегом
отметив: "v5.22-p1". Так Четвёртый, подобно Повелителю, объединил в себе
всех для сборки отобранных:

  * branch-4.0: v5.27--(v5.22)--icons-1.0--pam.d-1.0--imode-5.27(v5.22-p0)--pam-integ-1.0(v5.22-p1)--HEAD

  И взял он Шестерни могучие и приказал им:

  tar.gz: v@version@:xlockmore
  tar.gz: icons-1.0:icons name=@name@-@version@-icons
  tar: pam.d-1.0:pam.d name=@name@-@version@-pam.d
  diff: v@version@:xlockmore v@version@-p0:xlockmore name=install-mode.patch
  diff: v@version@-p0:xlockmore v@version@-p1:xlockmore name=pam-integration.patch

  Словом "@version@" значение "5.22" обозначив.

  И завертелись Шестерни, и последовательно между собой теги сравнивая,
патчей наделали. И не было в тех патчах ничего лишнего, и накатились они
славно. И собрался пакет, хоть и старый, но надёжный, с новыми заплатами.

  С тех пор так и повелось. Если какому сыну захотелось пакет собрать,
он братьев своих к себе на пир созывает, с каждым спорит, но неизменно
мириться и тег устанавливает. Шестерни потом с этих тегов патчи творят,
последовательно их между собой сравнивая. И выходят у них пакеты
славные. А чужаку со стороны так пакет не в жизнь не собрать!


                                * * *

  Вот собственно и всё. Не уверен что это универсальный и вообще верный
рецепт, но я вчера использовал именно его. Результат можно увидеть в
/people/manowar/xlockmore.git. Поддержку и конструктивную критику приму
с радостью!

  Павел.

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

* Re: [devel] diff in .gear-rules
  2008-10-17 14:45 ` Pavel Wolneykien
@ 2008-10-17 20:08   ` Konstantin Baev
  0 siblings, 0 replies; 7+ messages in thread
From: Konstantin Baev @ 2008-10-17 20:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Pavel Wolneykien пишет:
> ...
>
>   Вот собственно и всё. Не уверен что это универсальный и вообще верный
> рецепт, но я вчера использовал именно его. Результат можно увидеть в
> /people/manowar/xlockmore.git. Поддержку и конструктивную критику приму
> с радостью!
>
>   Павел.
>   
Супер! В мемориз.
Надо бы примерами команд снабдить и на altlinux.org выложить, тогда 
вообще цены не будет! :)

--
Konstantin Baev
kipruss@altlinux.org



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

* Re: [devel] diff in .gear-rules
  2008-10-17 14:26 ` Andrey Rahmatullin
@ 2008-10-17 20:45   ` Grigory Batalov
  2008-10-17 20:55     ` Dmitry V. Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Grigory Batalov @ 2008-10-17 20:45 UTC (permalink / raw)
  To: devel

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

On Fri, 17 Oct 2008 20:26:42 +0600, Andrey Rahmatullin wrote:

> > Можно ли заставить директиву diff из .gear-rules игнорировать появление
> > новых файлов? Т.е. вместо "diff -ruN" запускать "diff -ru".
> > И если нельзя, то как сделать, чтобы было можно? =)

> А зачем? По-моему, это противоречит основной идее.

Идея идее рознь. Одной идее противоречишь, другой следуешь.

Смысл затеи в следующем:

Допустим, есть бранч с исходниками (source), пофайлово побитый
ещё на несколько (branch1 и branch2).

source
`- branch1
`- branch2

Я хочу вносить изменения в source, не заботясь о том, в каком
из бранчей находится конкретный файл, а вместо этого формируя
diff между исходным бранчем branch{1,2} и пропатченными исходниками.

source
|`- patched
`- branch1
`- branch2

.gear-rules:
diff: branch1:. patched:. name=1.patch
diff: branch2:. patched:. name=2.patch

Но при этом в 1.patch помимо изменённых попадут файлы,
отсутстствовавшие в branch1, а в 2.patch - в branch2.
(Допустим пока, что я сам не кладу новых файлов в patched.)

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

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

* Re: [devel] diff in .gear-rules
  2008-10-17 20:45   ` Grigory Batalov
@ 2008-10-17 20:55     ` Dmitry V. Levin
  2008-10-17 21:13       ` Grigory Batalov
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry V. Levin @ 2008-10-17 20:55 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On Sat, Oct 18, 2008 at 12:45:24AM +0400, Grigory Batalov wrote:
[...]
> Допустим, есть бранч с исходниками (source), пофайлово побитый
> ещё на несколько (branch1 и branch2).
> 
> source
> `- branch1
> `- branch2
> 
> Я хочу вносить изменения в source, не заботясь о том, в каком
> из бранчей находится конкретный файл, а вместо этого формируя
> diff между исходным бранчем branch{1,2} и пропатченными исходниками.
> 
> source
> |`- patched
> `- branch1
> `- branch2
> 
> .gear-rules:
> diff: branch1:. patched:. name=1.patch
> diff: branch2:. patched:. name=2.patch
> 
> Но при этом в 1.patch помимо изменённых попадут файлы,
> отсутстствовавшие в branch1, а в 2.patch - в branch2.
> (Допустим пока, что я сам не кладу новых файлов в patched.)

Если branch1 и branch2 пересекаются по файлам, то это не будет работать.
А если branch1 и branch2 не пересекаются по каталогам, то проще написать

diff: branch1:dir1 patched:dir1 name=1.patch
diff: branch2:dir2 patched:dir2 name=2.patch


-- 
ldv

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

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

* Re: [devel] diff in .gear-rules
  2008-10-17 20:55     ` Dmitry V. Levin
@ 2008-10-17 21:13       ` Grigory Batalov
  0 siblings, 0 replies; 7+ messages in thread
From: Grigory Batalov @ 2008-10-17 21:13 UTC (permalink / raw)
  To: devel

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

On Sat, 18 Oct 2008 00:55:53 +0400, Dmitry V. Levin wrote:

> > Допустим, есть бранч с исходниками (source), пофайлово побитый
> > ещё на несколько (branch1 и branch2).
> >
> > source
> > `- branch1
> > `- branch2
> >
> > Я хочу вносить изменения в source, не заботясь о том, в каком
> > из бранчей находится конкретный файл, а вместо этого формируя
> > diff между исходным бранчем branch{1,2} и пропатченными исходниками.
> >
> > source
> > |`- patched
> > `- branch1
> > `- branch2
> >
> > .gear-rules:
> > diff: branch1:. patched:. name=1.patch
> > diff: branch2:. patched:. name=2.patch
> >
> > Но при этом в 1.patch помимо изменённых попадут файлы,
> > отсутстствовавшие в branch1, а в 2.patch - в branch2.
> > (Допустим пока, что я сам не кладу новых файлов в patched.)
>
> Если branch1 и branch2 пересекаются по файлам, то это не будет работать.
> А если branch1 и branch2 не пересекаются по каталогам,

По файлам не пересекаются, а по каталогам пересекаются
(как я это понимаю):

texmf-dist/tex/generic/texdraw/* - в одном бранче
texmf-dist/tex/generic/qpxqtx/* - в другом

> то проще написать
>
> diff: branch1:dir1 patched:dir1 name=1.patch
> diff: branch2:dir2 patched:dir2 name=2.patch

Наверное, если изменений было немного, их можно все перечислить =)
diff: branch1:texmf-dist/tex/generic/texdraw patched:texmf-dist/tex/generic/texdraw name=texdraw.patch

Однако, однажды их может стать много.

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

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

end of thread, other threads:[~2008-10-17 21:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-17 11:54 [devel] diff in .gear-rules Grigory Batalov
2008-10-17 14:26 ` Andrey Rahmatullin
2008-10-17 20:45   ` Grigory Batalov
2008-10-17 20:55     ` Dmitry V. Levin
2008-10-17 21:13       ` Grigory Batalov
2008-10-17 14:45 ` Pavel Wolneykien
2008-10-17 20:08   ` Konstantin Baev

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