RFC merge requirement: index matches head
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest7 patches 7 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/7 | t6044: verify that merges expected to abort actually abortt/ | +21 | 0 replies | |
| 2/7 | t6044: add a testcase for index matching head, when head doesn't match HEADt/ | +11 | 0 replies | |
| 3/7 | merge-recursive: make sure when we say we abort that we actually abortmerge-recursive.c t/ | +3 | 0 replies | |
| 4/7 | merge-recursive: fix assumption that head tree being merged is HEADbuiltin/ cache.h merge-recursive.c +3 more | +19 | 6 replies | |
| 5/7 | t6044: add more testcases with staged changes before a merge is invokedt/ | +29 | 0 replies | |
| 6/7 | merge-recursive: enforce rule that index matches head before mergingmerge-recursive.c t/ t/ +1 more | +18 | 0 replies | |
| 7/7 | merge: fix misleading pre-merge check documentationDocumentation/ | +3 | 1 reply |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [RFC PATCH 0/7] merge requirement: index matches head
Between working on some other things, I happened to be reading Documentation/git-merge.txt and ran across the part that says:
...[merge will] abort if there are any changes registered in the index relative to the HEAD commit. (One exception is when the changed index entries are in the state that would result from the merge already.)
I was pretty sure this statement was wrong, but did some digging to uncover the details and the history. What I thought would turn into a simple three-line documentation fix, ballooned into this patch series.
This series might be best read in a different order; I'm not yet sure the right way to structure it. But:
* Patch 5 demonstrates one of the ways that the parenthetical sentence is wrong (desirable perhaps, but not what is implemented)
* Patch 7 explains the history, the trade-offs, the three ways the parenthetical sentence is wrong, and the many pitfalls we've run into trying to allow for such an exception. Very small documentation fix with a huge commit message.
* Patch 6 fixes the breakage demonstrated in patch 5, but if I only submitted patches 5-7, then the testsuite wouldn't pass because this fix uncovered multiple other bugs. That's where patches 1-4 came in. This fix is also kind of opinionated; it takes the stance that allowing the exceptions isn't worth it.
Elijah Newren (7):
t6044: verify that merges expected to abort actually abort
t6044: add a testcase for index matching head, when head doesn't match HEAD
merge-recursive: make sure when we say we abort that we actually abort
merge-recursive: fix assumption that head tree being merged is HEAD
t6044: add more testcases with staged changes before a merge is invoked
merge-recursive: enforce rule that index matches head before merging
merge: fix misleading pre-merge check documentation
Documentation/git-merge.txt | 6 +- builtin/am.c | 6 +- cache.h | 8 -- merge-recursive.c | 14 +-- merge.c | 10 +- t/t6044-merge-unrelated-index-changes.sh | 67 +++++++++++-- t/t7504-commit-msg-hook.sh | 4 +- t/t7611-merge-abort.sh | 118 ----------------------- tree.h | 8 ++ 9 files changed, 87 insertions(+), 154 deletions(-)
Signature · 1 line
2.18.0.rc0.49.g3c08dc0fef