[PATCH v2] subtree: force merge commit
From: Thomas Koutcher via GitGitGadget <hidden>
Date: 2021-11-14 21:46:08
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Thomas Koutcher <redacted>
When `merge.ff` is set to `only` in .gitconfig, `git subtree pull` will
fail with error `fatal: Not possible to fast-forward, aborting.`, but
the command does want to make merges in these places. Add `--no-ff`
argument to `git merge` to enforce this behaviour.
Reviewed-by: Ævar Arnfjörð Bjarmason <redacted>
Reviewed-by: Junio C Hamano <redacted>
Signed-off-by: Thomas Koutcher <redacted>
---
subtree: ignore merge.ff setting
When merge.ff is set to only in .gitconfig, git subtree pull will fail
with error fatal: Not possible to fast-forward, aborting.. This fix
ignores the merge.ff setting when using git merge within subtree.
Signed-off-by: Thomas Koutcher thomas.koutcher@online.fr
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1139%2Fkoutcher%2Fsubtree-merge-ff-fix-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1139/koutcher/subtree-merge-ff-fix-v2
Pull-Request: https://github.com/git/git/pull/1139
Range-diff vs v1:
1: b03749fda76 ! 1: 765fea3e26c subtree: ignore merge.ff setting
@@ Metadata
Author: Thomas Koutcher [off-list ref]
## Commit message ##
- subtree: ignore merge.ff setting
+ subtree: force merge commit
When `merge.ff` is set to `only` in .gitconfig, `git subtree pull` will
- fail with error `fatal: Not possible to fast-forward, aborting.`. This
- fix ignores the `merge.ff` setting when using `git merge` within subtree.
+ fail with error `fatal: Not possible to fast-forward, aborting.`, but
+ the command does want to make merges in these places. Add `--no-ff`
+ argument to `git merge` to enforce this behaviour.
+ Reviewed-by: Ævar Arnfjörð Bjarmason [off-list ref]
+ Reviewed-by: Junio C Hamano [off-list ref]
Signed-off-by: Thomas Koutcher [off-list ref]
## contrib/subtree/git-subtree.sh ##
@@ contrib/subtree/git-subtree.sh: cmd_merge () {
if test -n "$arg_addmerge_message"
then
- git merge -Xsubtree="$arg_prefix" \
-+ git -c merge.ff= merge -Xsubtree="$arg_prefix" \
++ git merge --no-ff -Xsubtree="$arg_prefix" \
--message="$arg_addmerge_message" "$rev"
else
- git merge -Xsubtree="$arg_prefix" $rev
-+ git -c merge.ff= merge -Xsubtree="$arg_prefix" $rev
++ git merge --no-ff -Xsubtree="$arg_prefix" $rev
fi
}
contrib/subtree/git-subtree.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 7f767b5c38f..cb51aee4cbf 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh@@ -976,10 +976,10 @@ cmd_merge () { if test -n "$arg_addmerge_message" then - git merge -Xsubtree="$arg_prefix" \ + git merge --no-ff -Xsubtree="$arg_prefix" \ --message="$arg_addmerge_message" "$rev" else - git merge -Xsubtree="$arg_prefix" $rev + git merge --no-ff -Xsubtree="$arg_prefix" $rev fi }
base-commit: 5fbd2fc5997dfa4d4593a862fe729b1e7a89bcf8 -- gitgitgadget