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