Add a new configuration option, merge.allowfastforward
When set to false, causes --no-ff to be the default behavior for merges. When set to true, or not present, the default behavior is unchanged, and acts like --ff is set.
Signed-off-by: Bryan Alves <bryanalves@gmail.com> --- Documentation/merge-options.txt | 4 +++- builtin-merge.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletions(-)
Show changes to 2 files +6 −1
Documentation/merge-options.txt, builtin-merge.c
diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt index 3b83dba..6638af7 100644 --- a/Documentation/merge-options.txt +++ b/Documentation/merge-options.txt @@ -14,7 +14,9 @@ inspect and further tweak the merge result before committing. the default behavior of git-merge. + With --no-ff Generate a merge commit even if the merge -resolved as a fast-forward. +resolved as a fast-forward. --no-ff can be made the +default behavior with the configuration option +merge.allowfastforward --log:: --no-log:: diff --git a/builtin-merge.c b/builtin-merge.c index 3aaec7b..a96aaac 100644 --- a/builtin-merge.c +++ b/builtin-merge.c @@ -495,6 +495,9 @@ static int git_merge_config(const char *k, const char *v, void *cb) free(buf); } + if (!strcmp(k, "merge.allowfastforward")) + allow_fast_forward = !git_config_bool(k, v); + if (!strcmp(k, "merge.diffstat") || !strcmp(k, "merge.stat")) show_diffstat = git_config_bool(k, v); else if (!strcmp(k, "pull.twohead"))
-- 1.6.6.1