From: Ingo Molnar <mingo@elte.hu>
To: Andreas Ericsson <ae@op5.se>
Cc: git@vger.kernel.org
Subject: Re: q: faster way to integrate/merge lots of topic branches?
Date: Wed, 23 Jul 2008 16:02:43 +0200 [thread overview]
Message-ID: <20080723140243.GA6678@elte.hu> (raw)
In-Reply-To: <488734D9.9070703@op5.se>
* Andreas Ericsson <ae@op5.se> wrote:
> Ingo Molnar wrote:
>> I've got the following, possibly stupid question: is there a way to
>> merge a healthy number of topic branches into the master branch in a
>> quicker way, when most of the branches are already merged up?
>>
>> Right now i've got something like this scripted up:
>>
>> for B in $(git-branch | cut -c3- ); do git-merge $B; done
>>
>> It takes a lot of time to run on even a 3.45GHz box:
>>
>> real 0m53.228s
>> user 0m41.134s
>> sys 0m11.405s
>>
>> I just had a workflow incident where i forgot that this script was
>> running in one window (53 seconds are a _long_ time to start doing some
>> other stuff :-), i switched branches and the script merrily chugged
>> away merging branches into a topic branch i did not intend.
>>
>> It iterates over 140 branches - but all of them are already merged up.
>>
>
> With the builtin merge (which is in next), this should be doable with
> an octopus merge, which will eliminate the branches that are already
> fully merged, resulting in a less-than-140-way merge (thank gods...).
> It also doesn't have the 24-way cap that the scripted version suffers
> from.
>
> If it does a good job at your rather extreme use-case, I'd say it's
> good enough for 'master' pretty soon :-)
hm, while i do love octopus merges [*] for release and bisection-quality
purposes, for throw-away (delta-)integration runs it's more manageable
to do a predictable series of one-on-one merges.
It results in better git-rerere behavior, has easier (to the human)
conflict resolutions and the octopus merge also falls apart quite easily
when it runs into conflicts. Furthermore, i've often seen octopus merges
fail while a series of 1:1 merges succeeded.
What i could try is to do a speculative octopus merge, in the hope of it
just going fine - and then fall back to the serial merge if it fails?
The git-fastmerge approach is probably still faster though - and
certainly simpler from a workflow POV.
Ingo
[*] take a look at these in the Linux kernel -git repo:
gitk 3c1ca43fafea41e38cb2d0c1684119af4c1de547
gitk 6924d1ab8b7bbe5ab416713f5701b3316b2df85b
next prev parent reply other threads:[~2008-07-23 14:03 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-23 13:05 q: faster way to integrate/merge lots of topic branches? Ingo Molnar
2008-07-23 13:17 ` Ingo Molnar
2008-07-23 13:49 ` Ingo Molnar
2008-07-23 14:47 ` Jay Soffian
2008-07-23 14:56 ` Ingo Molnar
2008-07-23 15:06 ` Ingo Molnar
2008-07-23 13:40 ` Andreas Ericsson
2008-07-23 14:02 ` Ingo Molnar [this message]
2008-07-23 14:57 ` Miklos Vajna
2008-07-23 13:41 ` Sergey Vlasov
2008-07-23 14:09 ` Ingo Molnar
2008-07-23 14:14 ` Ingo Molnar
2008-07-23 13:56 ` SZEDER Gábor
2008-07-23 14:04 ` Ingo Molnar
2008-07-23 17:59 ` Junio C Hamano
2008-07-23 22:09 ` [PATCH 1/2] builtin-branch.c: remove unused code in append_ref() callback function Junio C Hamano
2008-07-23 22:15 ` [PATCH] builtin-branch.c: optimize --merged and --no-merged Junio C Hamano
2008-07-24 7:16 ` Lars Hjemli
2008-07-24 8:29 ` Nanako Shiraishi
2008-07-24 10:03 ` Lars Hjemli
2008-07-24 15:29 ` q: faster way to integrate/merge lots of topic branches? Ingo Molnar
2008-07-23 18:04 ` Linus Torvalds
2008-07-23 18:12 ` Linus Torvalds
2008-07-23 20:01 ` Junio C Hamano
2008-07-24 15:27 ` Ingo Molnar
2008-07-25 8:46 ` Junio C Hamano
2008-07-23 14:06 ` Björn Steinbrink
2008-07-23 14:06 ` Santi Béjar
2008-07-23 17:59 ` Linus Torvalds
2008-07-23 19:09 ` Pierre Habouzit
2008-07-23 20:27 ` Pierre Habouzit
2008-07-23 20:40 ` Pierre Habouzit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080723140243.GA6678@elte.hu \
--to=mingo@elte.hu \
--cc=ae@op5.se \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).