The callchain for handling each argument contains the function revision.c:get_sha1 where the shorthand for "-" ~ "@{-1}" has already been implemented in a previous patch; the complete callchain leading to that function is: 1. merge.c:collect_parents 2. commit.c:get_merge_parent : this function calls revision.c:get_sha1 This patch also adds a test for checking that the shorthand works properly Signed-off-by: Siddharth Kannan <kannan.siddharth12@xxxxxxxxx> --- builtin/merge.c | 2 -- t/t3035-merge-hyphen-shorthand.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100755 t/t3035-merge-hyphen-shorthand.sh diff --git a/builtin/merge.c b/builtin/merge.c index a96d4fb..36ff420 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1228,8 +1228,6 @@ int cmd_merge(int argc, const char **argv, const char *prefix) argc = setup_with_upstream(&argv); else die(_("No commit specified and merge.defaultToUpstream not set.")); - } else if (argc == 1 && !strcmp(argv[0], "-")) { - argv[0] = "@{-1}"; } if (!argc) diff --git a/t/t3035-merge-hyphen-shorthand.sh b/t/t3035-merge-hyphen-shorthand.sh new file mode 100755 index 0000000..fd37ff9 --- /dev/null +++ b/t/t3035-merge-hyphen-shorthand.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +test_description='merge uses the shorthand - for @{-1}' + +. ./test-lib.sh + +test_expect_success 'setup' ' + test_commit first && + test_commit second && + test_commit third && + test_commit fourth && + test_commit fifth && + test_commit sixth && + test_commit seventh +' + +test_expect_success 'setup branches' ' + git checkout master && + git checkout -b testing-2 && + git checkout -b testing-1 && + test_commit eigth && + test_commit ninth +' + +test_expect_success 'merge - should work' ' + git checkout testing-2 && + git merge - && + git rev-parse HEAD HEAD^^ | sort >actual && + git rev-parse master testing-1 | sort >expect && + test_cmp expect actual +' + +test_done -- 2.1.4