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 <dyou...@gmail.com>
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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to