Skip to content

Commit

Permalink
Merge branch 'jn/merge-no-edit-fix' into maint
Browse files Browse the repository at this point in the history
* jn/merge-no-edit-fix:
  merge: do not launch an editor on "--no-edit $tag"
  • Loading branch information
gitster committed Feb 14, 2012
2 parents 58d4203 + 3adab6f commit 42e283a
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
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
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 42e283a

Please sign in to comment.