git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/2] Added test cases for git reset -

From
SSSudhanshu Shekhar <sudshekhar02@gmail.com>
Date
Mar 8, 2015, 14:58 UTC
Message-ID
<1425826720-5899-2-git-send-email-sudshekhar02@gmail.com>
In-Reply-To
<1425826720-5899-1-git-send-email-sudshekhar02@gmail.com>
Four test cases have been added
1) when user does reset - without any previous branch => Leads to error
2) when user does reset - with a previous branch      => Ensure it
behaves like  <at> {-1}

Other two deal with the situation when we have a file named '-'. We ignore such a file and - is always treated either as a previous branch or a bad filename. Users who wish to reset a file named '-' should specify it as './-'

Signed-off-by: Sudhanshu Shekhar <sudshekhar02@gmail.com>
---
I have created test cases for git reset -. @Junio, I tried incorporating your suggestions while developing these test cases.
However, since the verify_filename function ignores files starting with "-", git reset - will always refer to the branch only. Kindly let me know your thoughts and views on this and also your reviews about the test cases I have created.

Regards, Sudhanshu

 t/t7102-reset.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh
index 98bcfe2..ade3d6a 100755
--- a/t/t7102-reset.sh
+++ b/t/t7102-reset.sh
@@ -568,4 +568,66 @@ test_expect_success 'reset --mixed sets up work tree' '
 	test_cmp expect actual
 '
 
+cat > expect << EOF
+fatal: bad flag '-' used after filename
+EOF
+
+test_expect_success 'reset - with no previous branch' '
+	git init no_previous --quiet &&
+	(
+	cd no_previous
+	) &&
+	test_must_fail git reset - 2>output &&
+	test_cmp expect output
+'
+
+test_expect_success 'reset - while having file named - and no previous branch' '
+	git init no_previous --quiet &&
+	(
+	cd no_previous &&
+	touch ./-
+	) &&
+	test_must_fail git reset - 2>output &&
+	test_cmp expect output
+'
+
+cat > expect << EOF
+Unstaged changes after reset:
+M	-
+M	1
+EOF
+
+test_expect_success 'reset - in the prescence of file named - with previou branch' '
+	git init no_previous --quiet &&
+	cd no_previous &&
+	touch ./- 1 &&
+	git add 1 - &&
+	git commit -m "add base files" &&
+	git checkout -b new_branch &&
+	echo "random" >./- &&
+	echo "wow" >1 &&
+	git add 1 - &&
+	git reset - >output &&
+	test_cmp output ../expect
+'
+test_expect_success 'reset - works same as reset @{-1}' '
+	git init no_previous --quiet &&
+	cd no_previous &&
+	echo "random" >random &&
+	git add random &&
+	git commit -m "base commit" &&
+	git checkout -b temp &&
+	echo new-file >new-file &&
+	git add new-file &&
+	git commit -m "added new-file" &&
+	git reset - &&
+
+	git status >../first &&
+	git add new-file &&
+	git commit -m "added new-file" &&
+	git reset @{-1} &&
+	git status >../second &&
+	test_cmp ../first ../second
+'
+
 test_done
-- 
2.3.1.168.g0c82976.dirty
Previous: Sudhanshu ShekharNext: David Aguilar
Message 11 of 12 in “reset: allow "-" short hand for previous commit”
  1. reset: allow "-" short hand for previous commitSudhanshu Shekhar, Mar 3, 2015
  2. Matthieu MoyMar 3, 2015
  3. Junio C HamanoMar 3, 2015
  4. Sudhanshu ShekharMar 4, 2015
  5. reset: allow "-" short hand for previous commitSudhanshu Shekhar, Mar 4, 2015
  6. Eric SunshineMar 4, 2015
  7. Junio C HamanoMar 5, 2015
  8. 1/2 reset: allow "-" short hand for previous commitSudhanshu Shekhar, Mar 7, 2015
  9. Matthieu MoyMar 8, 2015
  10. 1/2 Teach reset the same short-hand as checkoutSudhanshu Shekhar, Mar 8, 2015
  11. 2/2 Added test cases for git reset -Sudhanshu Shekhar, Mar 8, 2015
  12. David AguilarMar 8, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.