Add following test cases: 1) Confirm error message when git reset is used with no previous branch 2) Confirm git reset - works like git reset @{-1} 3) Confirm "-" is always treated as a commit unless the -- file option is specified 4) Confirm "git reset -" works normally even when a file named @{-1} is present Helped-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> Helped-by: Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> Helped-by: David Aguilar <davvid@xxxxxxxxx> Signed-off-by: Sudhanshu Shekhar <sudshekhar02@xxxxxxxxx> --- First of all, thank you for being so incredibly patient and helpful. I am very grateful for your remarks and reviews. I have implemented your suggestions in this patch. Please let me know if I have missed out on anything else. Also, sorry for sending PATCH 1/2 on the wrong thread, I entered the Message-ID incorrectly (still getting used to send-email :/ ). Regards, Sudhanshu t/t7102-reset.sh | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh index 98bcfe2..d3a5874 100755 --- a/t/t7102-reset.sh +++ b/t/t7102-reset.sh @@ -568,4 +568,163 @@ test_expect_success 'reset --mixed sets up work tree' ' test_cmp expect actual ' +test_expect_success 'reset - with no previous branch fails' ' + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + test_must_fail git reset - 2>actual + ) && + test_i18ngrep "bad flag" no_previous/actual +' + +test_expect_success 'reset - while having file named - and no previous branch fails' ' + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + >- && + test_must_fail git reset - 2>actual + ) && + test_i18ngrep "bad flag" no_previous/actual +' + +test_expect_success \ + 'reset - in the presence of file named - with previous branch resets commit' ' + cat >expect <<-\EOF + Unstaged changes after reset: + M - + M file + EOF && + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + >- && + >file && + git add file - && + git commit -m "add base files" && + git checkout -b new_branch && + echo "random" >- && + echo "wow" >file && + git add file - && + git reset - >../actual + ) && + test_cmp expect actual +' + +test_expect_success \ + 'reset - in the presence of file named - with -- option resets commit' ' + cat >expect <<-\EOF + Unstaged changes after reset: + M - + M file + EOF && + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + >- && + >file && + git add file - && + git commit -m "add base files" && + git checkout -b new_branch && + echo "random" >- && + echo "wow" >file && + git add file - && + git reset - -- >../actual + ) && + test_cmp expect actual +' + +test_expect_success 'reset - in the presence of file named - with -- file option resets file' ' + cat >expect <<-\EOF + Unstaged changes after reset: + M - + M file + EOF && + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + >- && + >file && + git add file - && + git commit -m "add base files" && + git checkout -b new_branch && + echo "random" >- && + echo "wow" >file && + git add file - && + git reset -- - >../actual + ) && + test_cmp expect actual +' + +test_expect_success \ + 'reset - in the presence of file named - with both pre and post -- option resets file' ' + cat >expect <<-\EOF + Unstaged changes after reset:" >expect && + M - + EOF && + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + >- && + >file && + git add file - && + git commit -m "add base files" && + git checkout -b new_branch && + echo "random" >- && + echo "wow" >file && + git add file - && + git reset - -- - >../actual + ) && + test_cmp expect actual +' + +test_expect_success 'reset - works same as reset @{-1}' ' + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + echo "file1" >file1 && + git add file1 && + git commit -m "base commit" && + git checkout -b temp && + echo "new file" >file && + git add file && + git commit -m "added file" && + git reset - && + git status --porcelain >../actual && + git add file && + git commit -m "added file" && + git reset @{-1} && + git status --porcelain >../expect + ) && + test_cmp expect actual +' + +test_expect_success 'reset - with file named @{-1} succeeds' ' + cat >expect <<EOF + Unstaged changes after reset: + M file + M @{-1} + EOF && + git init no_previous && + test_when_finished rm -rf no_previous && + ( + cd no_previous && + echo "random" >@{-1} && + echo "random" >file && + git add @{-1} file && + git commit -m "base commit" && + git checkout -b new_branch && + echo "additional stuff" >>file && + echo "additional stuff" >>@{-1} && + git add file @{-1} && + git reset - >../actual + ) && + test_cmp expect actual +' + test_done -- 2.3.1.278.ge5c7b1f.dirty -- 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