ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] [HOWTO] как я делал ктулху в git'е mutt1.5
@ 2007-09-06  8:58 Alexey I. Froloff
  2007-09-16 18:47 ` Michael Shigorin
  0 siblings, 1 reply; 2+ messages in thread
From: Alexey I. Froloff @ 2007-09-06  8:58 UTC (permalink / raw)
  To: ALT Linux Sisyphus

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

Как вы все наверно знаете, наш mutt1.5 это такой mutt2ng-new с
большим количеством "левых" патчей.  Из-за такого количества
каждое обновление версии превращается в изощрённую пытку для
мантейнера.  По идее git должен бы помочь решить подобные
проблемы...

Сначала я посмотрел на kernel-image.  Там каждый патч живёт в
отдельном бранче, перед релизом всё мержится в master.  Примерно
так:

        master
          *  merge-C
         /|
        / *  merge-B
       / /|
      / / *  merge-A
     / / /|
    / / / *  merge-upstream
   / / / /|
  * | | | |  patchC
  | * | | |  patchB
  | | * | |  patchA
   \ \ \| |
    +-+-* |  upstream
        | |

По каждому патчу конфликт разруливается сначала в patchX, потом в
merge-X.  При обновлении версии upstream и/или patchX приходится
делать маленький закат солнца вручную с повторным разруливаением
всех конфликтов.  Это не ядро и патчи имеют обыкновение
пересекаться во множестве мест.

Результат этого изврата ещё некоторое время можно будет наблюдать
в моём mutt1.5.git.


Есть второй способ, который посоветовал мне voins (на примере его
stklos.git и WindowMaker.git).  upstream мержится в patchA,
patchA в patchB и так далее.  При этом конфликты разруливаются
практически только один раз при мерже patchN-1 в patchN.

Картинко будет примерно такое:

master
 *
 |\
 | * patchC
 | |\
 | | * patchB
 | | |\
 | | | * patchA
 | | | |\
 | | | | * upstream
 | | | | |

Что делать при обновлении upstream и/или patchX?

1. upstream

patchA <- upstream
patchB <- patchA
...
master <- patchZ

2. patchX

branch patchX-tmp upstream
накладываем новый patchX в patchX-tmp
patchX-tmp <- patch(X-1)
patchX <- patchX-tmp
branch -d patchX-tmp
patch(X+1) <- patchX
...
master <- patchZ

3. patchX и upstream

До patch(X-1) поступаем аналогично 1., потом аналогично 2.

Надеюсь принцип ясен ;-)


P.S. Ниасилил куда это положить на wiki, да и само описание
довольно сумбурное.

-- 
Regards, Alexey I. Froloff
AIF5-RIPN, AIF5-RIPE
-------------------------------------------
  Inform-Mobil, Ltd. System Administrator
       http://www.inform-mobil.ru/

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

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

* Re: [sisyphus] [HOWTO] как я делал ктулху в git'е mutt1.5
  2007-09-06  8:58 [sisyphus] [HOWTO] как я делал ктулху в git'е mutt1.5 Alexey I. Froloff
@ 2007-09-16 18:47 ` Michael Shigorin
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Shigorin @ 2007-09-16 18:47 UTC (permalink / raw)
  To: ALT Linux Sisyphus

On Thu, Sep 06, 2007 at 12:58:03PM +0400, Alexey I. Froloff wrote:
> P.S. Ниасилил куда это положить на wiki

Спасибо, что написал.

http://www.freesource.info/wiki/ALTLinux/Sisyphus/devel/git/MergingBranches

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


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

end of thread, other threads:[~2007-09-16 18:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-06  8:58 [sisyphus] [HOWTO] как я делал ктулху в git'е mutt1.5 Alexey I. Froloff
2007-09-16 18:47 ` Michael Shigorin

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git