chiark / gitweb /
git-debrebase: New merge handing, experimental and preliminary
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 11 Aug 2018 08:50:04 +0000 (09:50 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 11 Aug 2018 09:30:31 +0000 (10:30 +0100)
commit6afbad208f42c5f4b2f232988a7ed775b638ec7b
treecb3a52a65bf5f251337d6f5edbfbb3e6f569da5f
parent39003be207b8d6fe57206373587b57c20a38b06f
git-debrebase: New merge handing, experimental and preliminary

Classification:
* Classify octopus merges as unknown, separately
* Classify 2-parent general merges as VanillaMerge, if feature enabled
* Introduce new merged-breakwater commit tag, classify as MergedBreakwaters
* Classify other gdr-generated 2-parent merges as unknown

Inspection (keycommits):
* VanillaMerge commits require laundry, much like dgit imports,
  and prevent discernment of the actual breakwater and anchor

Laundry (walk):
* Rewrite VanillaMerge using new merge_series function

Test suite:
* We get a slightly different error message in gdr-unprocessable, now.
  Later, when we make this non-experimental all the time, we are going
  to have to soup up gdr-unprocessable to make a worse test commit.

There are a lot of known bugs and infelicites, marked with "xxx".
There is a test (which will appear in a moment) but it's rather a poor
test, so there will be many uknown bugs.

So all of this is enabled only if GIT_DEBREBASE_EXPERIMENTAL_MERGE is
set in the environment.  (Strictly, only the classification is gated,
but that is sufficient.)  No significant functional change without
this setting.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
git-debrebase
tests/tests/gdr-unprocessable