Skip to content

Commit

Permalink
merge: do not launch an editor on "--no-edit $tag"
Browse files Browse the repository at this point in the history
When the user explicitly asked us not to, don't launch an editor.

But do everything else the same way as the "edit" case, i.e. leave the
comment with verification result in the log template and record the
mergesig in the resulting merge commit for later inspection.

Based on initiail analysis by Jonathan Nieder.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Feb 9, 2012
1 parent b5c9f1c commit 3adab6f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
10 changes: 7 additions & 3 deletions builtin/merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)"),
Expand Down Expand Up @@ -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);
Expand Down
12 changes: 12 additions & 0 deletions t/t7600-merge.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 3adab6f

Please sign in to comment.