Merge branch 'jn/merge-no-edit-fix'
authorJunio C Hamano <gitster@pobox.com>
Mon, 13 Feb 2012 06:41:51 +0000 (22:41 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Feb 2012 06:41:51 +0000 (22:41 -0800)
* jn/merge-no-edit-fix:
merge: do not launch an editor on "--no-edit $tag"

Conflicts:
builtin/merge.c

builtin/merge.c
t/t7600-merge.sh
index 7e6db3bb35517b78f288202a635fcaa9a2353235..ed0f959ac49c02aaffa77bc748a9efc69f1fd339 100644 (file)
@@ -1324,7 +1324,8 @@ 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;
                }
        }
index a598dfa4777a8d459fd6e68b9a63c77d87e47c24..9e27bbf902e275671cb80310630a8bedcaab353c 100755 (executable)
@@ -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