From: Ingo Molnar <mingo@elte.hu>
To: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>,
Vegard Nossum <vegard.nossum@gmail.com>,
linux-next@vger.kernel.org,
Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>,
Christoph Lameter <cl@linux-foundation.org>
Subject: Re: linux-next: manual merge of the kmemcheck tree
Date: Wed, 13 Aug 2008 13:52:10 +0200 [thread overview]
Message-ID: <20080813115210.GD18660@elte.hu> (raw)
In-Reply-To: <1218627433.7813.320.camel@penberg-laptop>
* Pekka Enberg <penberg@cs.helsinki.fi> wrote:
> Hi Ingo,
>
> On Wed, 2008-08-13 at 10:58 +0200, Ingo Molnar wrote:
> > what's your current workflow, what causes the sha1's for commits to
> > change frequently? Do you work with patches (i.e. it's not really a Git
> > workflow at all and you regenerate the git tree all the time you export
> > it from your patch queue), or do you perhaps git-rebase often to clean
> > up patches?
>
> No, I don't work with patches. A lot of the churn comes from the fact
> that I have been dropping and re-applying SLUB defrag patches from
> Christoph lately. I keep them in a topic branch and pull them for my
> 'for-next' branch that appears in linux-next.
>
> The basic workflow for me is as follows:
>
> - Whenever someone sends me a patch, I apply it to my 'testing'
> branch, do a little bit testing there and if everything seems fine,
> I pull the branch to my 'for-next' branch.
>
> - After few days, I pull (or cherry pick) the patches to 'for-linus'
> branch and ask Linus to pull. Whenever he pulls, I usually rebase
> all of my branches to Linus' master.
>
> - For development, I maintain topic branches that are _not_
> append-only (such as SLUB defrag and kmemtrace). Whenever something
> changes there I do a git-reset --hard on 'for-next' and re-pull the
> topic branches there.
>
> - Also, I usually rebase my whole tree after an -rc release or two
> just to keep my tree in-sync with mainline. That usually doesn't
> affect my patches at all.
>
> So AFAICT most of the changes to SHA1s are due to me doing development
> in the topic branches and recreating the 'for-next' branch.
seems pretty sane to me. We use something quite similar in -tip, with
the distinction that after a very short initial period [a few days at
most] we try to keep development branches append-only as well.
There are 5 main advantages of doing that:
- trust: the end result, despite being a slighly bit messy, is easier to
trust. The commits are in true historic order, development activities
and timeline is easy to review.
- integration: creating the next branch is just a matter of doing an
incremental git-merge.
- guaranteed no-brains preservation of information: no patch is lost
ever in a pure append-only flow. Doing a git-reset --hard anytime
always risks the loss of patches - and even if only history is lost,
that is valuable too most of the time. Whenever i do it i have to use
additional safeguards against the loss of patches.
- bisection quality: statistically, the newest commits tend to have
the most bugs. By doing delta patches - even if the end result is a
higher patch count - makes the risky portion of a stream of
append-only changes drastically smaller. [this assumes that there is
an adequate QA effort and that commits do not just sit there unused:
that the topic branch is tested well enough and is exposed to others
via linux-next, etc.]
- other contributors: derived work (people basing trees off topic
branches) do not get sha1's pulled from under their feet. Back/forth
merging is easy. Having history of development in a tree (as long as
it's not totally insane history) is beneficial in general.
btw., when you send something to Linus and he pulls, generally you dont
have to rebase/reset to 'clean up the house' - as long as you dont
cherry-pick into the release branch. A "git-merge linus/master" will
fast-forward your topic branch and will turn it into a pure
upstream-based branch.
Ingo
next prev parent reply other threads:[~2008-08-13 11:52 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-13 5:29 linux-next: manual merge of the kmemcheck tree Stephen Rothwell
2008-08-13 7:32 ` Ingo Molnar
2008-08-13 7:31 ` Pekka Enberg
2008-08-13 7:58 ` Ingo Molnar
2008-08-13 8:14 ` Pekka Enberg
2008-08-13 8:58 ` Ingo Molnar
2008-08-13 11:37 ` Pekka Enberg
2008-08-13 11:52 ` Ingo Molnar [this message]
2008-08-13 11:57 ` Pekka Enberg
2008-08-13 12:05 ` Ingo Molnar
2008-08-13 7:41 ` Stephen Rothwell
-- strict thread matches above, loose matches on Subject: below --
2008-12-30 12:18 Stephen Rothwell
2008-12-30 12:14 Stephen Rothwell
2008-10-28 5:14 Stephen Rothwell
2008-10-28 8:15 ` Ingo Molnar
2008-10-21 5:29 Stephen Rothwell
2008-10-21 7:32 ` Ingo Molnar
2008-10-21 8:07 ` Vegard Nossum
2008-10-21 8:28 ` Ingo Molnar
2008-10-21 5:15 Stephen Rothwell
2008-08-20 6:40 Stephen Rothwell
[not found] <20080815164909.3d8beb10.sfr@canb.auug.org.au>
2008-08-15 7:04 ` Vegard Nossum
2008-08-15 8:00 ` Stephen Rothwell
2008-08-15 6:45 Stephen Rothwell
2008-08-15 6:43 ` Pekka Enberg
2008-08-15 8:17 ` Ingo Molnar
2008-08-13 5:26 Stephen Rothwell
2008-08-13 5:22 Stephen Rothwell
2008-07-28 4:09 Stephen Rothwell
2008-07-28 9:06 ` Ingo Molnar
2008-07-28 17:19 ` Stephen Rothwell
2008-07-28 4:01 Stephen Rothwell
2008-07-28 9:05 ` Ingo Molnar
2008-07-28 9:17 ` Vegard Nossum
2008-07-28 9:29 ` Ingo Molnar
2008-07-22 6:16 Stephen Rothwell
2008-07-22 6:52 ` Ingo Molnar
2008-07-22 8:18 ` Stephen Rothwell
2008-07-21 6:47 Stephen Rothwell
2008-07-11 6:32 Stephen Rothwell
2008-07-03 6:19 Stephen Rothwell
2008-07-03 6:12 Stephen Rothwell
2008-07-03 6:26 ` Ingo Molnar
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=20080813115210.GD18660@elte.hu \
--to=mingo@elte.hu \
--cc=cl@linux-foundation.org \
--cc=eduard.munteanu@linux360.ro \
--cc=linux-next@vger.kernel.org \
--cc=penberg@cs.helsinki.fi \
--cc=sfr@canb.auug.org.au \
--cc=vegard.nossum@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.