RE: [PATCH 1/9] t7601: add relative precedence tests for merge and rebase flags/options
flat view
From: Felipe Contreras <hidden>
Date: 2021-07-17 18:03:04
Elijah Newren via GitGitGadget wrote:
From: Elijah Newren <redacted>
The interaction of rebase and merge flags and options was not well
tested. Add several tests to check for correct behavior from the
following rules:
* --ff-only takes precedence over --[no-]rebase
* Corollary: pull.ff=only overrides pull.rebase
* --rebase[=!false] takes precedence over --no-ff and --ff
* Corollary: pull.rebase=!false overrides pull.ff=!only
* command line flags take precedence over config, except:
* --no-rebase heeds pull.ff=!only
* pull.rebase=!false takes precedence over --no-ff and --ff
This is wrong, --ff-only is meant only for merge, not rebase.
You are testing for behavior that 1) has not been agreed to, and 2) is
not documented.
This is what the current documentation says about all the --*ff*
options:
--ff::
--no-ff::
--ff-only::
Specifies how a merge is handled when the merged-in history is
already a descendant of the current history. `--ff` is the
default unless merging an annotated (and possibly signed) tag
that is not stored in its natural place in the `refs/tags/`
hierarchy, in which case `--no-ff` is assumed.
+
With `--ff`, when possible resolve the merge as a fast-forward (only
update the branch pointer to match the merged branch; do not create a
merge commit). When not possible (when the merged-in history is not a
descendant of the current history), create a merge commit.
+
With `--no-ff`, create a merge commit in all cases, even when the merge
could instead be resolved as a fast-forward.
+
With `--ff-only`, resolve the merge as a fast-forward when possible.
When not possible, refuse to merge and exit with a non-zero status.
--
Felipe Contreras