diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-02-13 23:24:02 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-02-13 23:24:02 -0800 |
commit | 42e283a1bfd0651fd2e6264157ecbe8841511788 (patch) | |
tree | d5b1e1235c93e4cad18dd37894e8cb7bd2be4adf | |
parent | Update draft release notes to 1.7.9.1 (diff) | |
parent | merge: do not launch an editor on "--no-edit $tag" (diff) | |
download | tgif-42e283a1bfd0651fd2e6264157ecbe8841511788.tar.xz |
Merge branch 'jn/merge-no-edit-fix' into maint
* jn/merge-no-edit-fix:
merge: do not launch an editor on "--no-edit $tag"
-rw-r--r-- | builtin/merge.c | 10 | ||||
-rwxr-xr-x | t/t7600-merge.sh | 12 |
2 files changed, 19 insertions, 3 deletions
diff --git a/builtin/merge.c b/builtin/merge.c index b4fbc60e6d..f385b8ac9e 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -48,7 +48,7 @@ static const char * const builtin_merge_usage[] = { static int show_diffstat = 1, shortlog_len = -1, squash; static int option_commit = 1, allow_fast_forward = 1; -static int fast_forward_only, option_edit; +static int fast_forward_only, option_edit = -1; static int allow_trivial = 1, have_message; static int overwrite_ignore = 1; static struct strbuf merge_msg = STRBUF_INIT; @@ -193,7 +193,7 @@ static struct option builtin_merge_options[] = { "create a single commit instead of doing a merge"), OPT_BOOLEAN(0, "commit", &option_commit, "perform a commit if the merge succeeds (default)"), - OPT_BOOLEAN('e', "edit", &option_edit, + OPT_BOOL('e', "edit", &option_edit, "edit message before committing"), OPT_BOOLEAN(0, "ff", &allow_fast_forward, "allow fast-forward (default)"), @@ -1287,11 +1287,15 @@ int cmd_merge(int argc, const char **argv, const char *prefix) merge_remote_util(commit) && merge_remote_util(commit)->obj && merge_remote_util(commit)->obj->type == OBJ_TAG) { - option_edit = 1; + if (option_edit < 0) + option_edit = 1; allow_fast_forward = 0; } } + if (option_edit < 0) + option_edit = 0; + if (!use_strategies) { if (!remoteheads->next) add_strategies(pull_twohead, DEFAULT_TWOHEAD); diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index a598dfa477..9e27bbf902 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -683,4 +683,16 @@ test_expect_success GPG 'merge --ff-only tag' ' test_cmp actual expect ' +test_expect_success GPG 'merge --no-edit tag should skip editor' ' + git reset --hard c0 && + git commit --allow-empty -m "A newer commit" && + git tag -f -s -m "A newer commit" signed && + git reset --hard c0 && + + EDITOR=false git merge --no-edit signed && + git rev-parse signed^0 >expect && + git rev-parse HEAD^2 >actual && + test_cmp actual expect +' + test_done |