As you had suggested @Junio, I have added the required tests. Please let me know if there is something is I should add. Signed-off-by: Sundararajan R <dyoucme@xxxxxxxxx> Thanks-to: Junio C Hamano --- I have added 6 tests to check for the following cases: git reset - with no @{-1} git reset - with no @{-1} and file named - git reset - with @{-1} and file named @{-1} git reset - with @{-1} and file named - git reset - with @{-1} and file named @{-1} and - git reset - with @{-1} and no file named - or @{-1} The 1st test with no previous branch results in the error The 2nd,3rd,4th and 5th result in the ambiguous argument error The 6th test has - working like @{-1} t/t7102-reset.sh | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh index 98bcfe2..a670938 100755 --- a/t/t7102-reset.sh +++ b/t/t7102-reset.sh @@ -568,4 +568,111 @@ test_expect_success 'reset --mixed sets up work tree' ' test_cmp expect actual ' +test_expect_success 'reset - with no @{-1}' ' + git init new --quiet && + cd new && + test_must_fail git reset - >actual && + touch expect && + test_cmp expect actual +' + +rm -rf new + +cat >expect <<EOF +fatal: ambiguous argument '-': both revision and filename +Use ./- for file named - +Use '--' to separate paths from revisions, like this: +'git <command> [<revision>...] -- [<file>...]' +EOF + +test_expect_success 'reset - with no @{-1} and file named -' ' + git init new --quiet && + cd new && + echo "Hello" > - && + git add - + test_must_fail git reset - 2>actual && + test_cmp ../expect actual +' + +cd .. +rm -rf new + +cat >expect <<EOF +fatal: ambiguous argument '@{-1}': both revision and filename +Use '--' to separate paths from revisions, like this: +'git <command> [<revision>...] -- [<file>...]' +EOF + +test_expect_success 'reset - with @{-1} and file named @{-1}' ' + git init new --quiet && + cd new && + echo "Hello" >@{-1} && + git add @{-1} && + git commit -m "first_commit" && + git checkout -b new_branch && + touch @{-1} && + git add @{-1} && + test_must_fail git reset - 2>actual && + test_cmp ../expect actual +' + +cd .. +rm -rf new + +cat >expect <<EOF +fatal: ambiguous argument '-': both revision and filename +Use ./- for file named - +Use '--' to separate paths from revisions, like this: +'git <command> [<revision>...] -- [<file>...]' +EOF + +test_expect_success 'reset - with @{-1} and file named - ' ' + git init new --quiet && + cd new && + echo "Hello" > - && + git add - && + git commit -m "first_commit" && + git checkout -b new_branch && + touch - && + git add - && + test_must_fail git reset - 2>actual && + test_cmp ../expect actual +' + +cd .. +rm -rf new + +test_expect_success 'reset - with @{-1} and file named @{-1} and - ' ' + git init new --quiet && + cd new && + echo "Hello" > - && + git add - && + git commit -m "first_commit" && + git checkout -b new_branch + echo "Hello" >@{-1} && + git add @{-1} && + test_must_fail git reset - 2>actual && + test_cmp ../expect actual +' + +cd .. +rm -rf new + +test_expect_success 'reset - with @{-1} and no file named - or @{-1} ' ' + git init new --quiet && + cd new && + echo "Hello" >new_file && + git add new_file && + git commit -m "first_commit" && + git checkout -b new_branch && + echo "Hey" >new_file && + git add new_file && + git reset - && + git status -uno >file1 && + git add new_file && + git reset @{-1} && + git status -uno >file2 && + test_cmp file1 file2 +' + test_done -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html