Subject: Re: [PATCH 1/2] Add feature release instructions to MaintNotes addendum

From: Junio C Hamano <[email-masked]>
Date: Sun, 29 Mar 2009 23:56:14 -0700

[email-masked] writes:

> + - The 'maint' branch is updated to the new release.
> +
> +     $ git branch -f maint master

It appears that you are trying to make this document into a canned set of
insns for people who want a ready-to-cut-and-paste-without-thinking
recipe, and I am perfectly fine with such a document, but as I mentioned
already, "how to maintain git" is not a good place to do so.  You seem to
have taken it as a joke, but I am serious.

In any case, I highly doubt we would want to have this "branch -f" here.
Not in "how to maintain git", but especially in a document you would give
to people who do not like to think for themselves but would want to follow
cut-and-paste recipe.

_I_ can do the above, but that is _only_ because I maintain 'master' with
certain discipline---it almost always is a superset of maint (it sometimes
isn't---when I am too tired to do so late at night and the leftover fix on
the 'maint' unmerged to 'master' is really trivial and unimportant in the
grand scheme of things), and especially after a big release it always is.

But for people who want to use a ready-to-cut-and-paste-without-thinking
recipe, it is much better to use:

	$ git checkout maint
	$ git merge master

just in case they have leftover fixes that later need to get merged to
master.  Otherwise they will be discarding the fixes with "branch -f".

An obvious alternative is to firmly describe in the release workflow to
make sure that 'maint' is fully merged to 'master' before a release is
made, but people tend to cherry-pick the parts they want to use without
thinking things through when presented a cut-and-paste recipe, and in
practice I do not think such an alternative would work well.

More important bits of release checklist, a bit outdated, is found in
Checklist.txt file on the 'todo' branch.  

I would need to talk a bit more about how to maintain What's in/cooking,
how the automated maintenance of html/man branches work, and how to set up
RPM building infrastructure for use with Meta/DoKernelOrg, in order to
make the Documentation/howto/maintain-git.txt truly to be usable by
somebody capable to take over when I cease to function as the maintainer
here.