neighborhood maintainer is struck down by a wayward bus. Out of the
hordes of suckers (loyal developers), you have been tricked (chosen) to
step up as the new maintainer. This howto will show you "how to" do it.
+Content-type: text/asciidoc
+
+How to maintain Git
+===================
+
+Activities
+----------
The maintainer's git time is spent on three activities.
Scratching my own itch and sending proposed patch series out.
+The Policy
+----------
+
The policy on Integration is informally mentioned in "A Note
from the maintainer" message, which is periodically posted to
this mailing list after each feature release is made.
-The policy.
-
- Feature releases are numbered as vX.Y.Z and are meant to
contain bugfixes and enhancements in any area, including
functionality, performance and usability, without regression.
are found before new topics are merged to 'master'.
+A Typical Git Day
+-----------------
+
A typical git day for the maintainer implements the above policy
by doing the following:
The result is a script that lists topics to be merged in order to
rebuild 'pu' as the input to Meta/Reintegrate script. Remove
later topics that should not be in 'jch' yet. Add a line that
- consists of '###' before the name of the first topic in the output
- that should be in 'jch' but not in 'next' yet.
+ consists of '### match next' before the name of the first topic
+ in the output that should be in 'jch' but not in 'next' yet.
- Now we are ready to start merging topics to 'next'. For each
branch whose tip is not merged to 'next', one of three things can
$ Meta/redo-jch.sh -c1
to rebuild the 'jch' branch from scratch. "-c1" tells the script
- to stop merging at the '###' line you added earlier.
+ to stop merging at the first line that begins with '###'
+ (i.e. the "### match next" line you added earlier).
At this point, build-test the result. It may reveal semantic
conflicts (e.g. a topic renamed a variable, another added a new
$ sh Meta/redo-jch.sh -u
This removes topics listed in the script that have already been
- merged to 'master'. This unfortunately loses the "###" marker,
- so add it again to the appropriate place.
+ merged to 'master'. This may lose '### match next' marker;
+ add it again to the appropriate place when it happens.
- Rebuild 'pu'.
- Push the integration branches out to public places; Meta/pushall
script may aid this step.
+Observations
+------------
+
Some observations to be made.
* Each topic is tested individually, and also together with other
'master' branch typically is.
-[Appendix]
+Appendix
+--------
Preparing a "merge-fix"
+~~~~~~~~~~~~~~~~~~~~~~~
A merge of two topics may not textually conflict but still have
conflict at the semantic level. A classic example is for one topic