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

[Resend PATCH] t3903 (stash): add failing test for ref of form ^{/message}

From
Ramkumar Ramachandra <artagnon@gmail.com>
Date
Apr 16, 2013, 18:09 UTC
Message-ID
<1366135765-18437-1-git-send-email-artagnon@gmail.com>

While a 'git stash show stash^{/quuxery}' works just fine, a 'git stash pop stash^{/quuxery}' complains with: 'stash^{/quuxery} is not a stash reference'. This confusing behavior arises from the differences in logic that 'show' and 'pop' internally employ to validate the specified ref. Document this bug by adding a failing testcase for it.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
 So sorry about misspelling Junio's address in my previous email.
 Please respond to this one instead.
 So if you look at git-stash.sh:377, you'll notice that it's doing a
 the shell substitution "${REV%@*}" to figure out whether the stash
 ref is a valid ref.  This hacky myopic design has to be done away
 with immediately, and we should really compare the SHA-1 hex of the
 specified ref with those in the stash reflog.
 The only reason I haven't written a fix yet is because I'm not sure
 why you need this convoluted IS_STASH_LIKE and IS_STASH_REF logic in
 the first place.  Can someone enlighten me as to what is going on?
 t/t3903-stash.sh | 9 +++++++++
 1 file changed, 9 insertions(+)
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index 5dfbda7..04ba983 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -583,6 +583,15 @@ test_expect_success 'invalid ref of the form stash@{n}, n >= N' '
 	git stash drop
 '
 
+test_expect_failure 'valid ref of the form stash^{/message}' '
+	git stash clear &&
+	echo bar > file &&
+	git add file &&
+	git stash save "quuxery" &&
+	git stash show stash^{/quuxery} &&
+	git stash pop stash^{/quuxery}
+'
+
 test_expect_success 'stash branch should not drop the stash if the branch exists' '
 	git stash clear &&
 	echo foo >file &&
-- 
1.8.2.1.390.g924f6c3.dirty
Next: Junio C Hamano
Message 1 of 12 in “t3903 (stash): add failing test for ref of form ^{/message}”
  1. t3903 (stash): add failing test for ref of form ^{/message}Ramkumar Ramachandra, Apr 16, 2013
  2. Junio C HamanoApr 16, 2013
  3. Ramkumar RamachandraApr 16, 2013
  4. Junio C HamanoApr 16, 2013
  5. Brandon CaseyApr 16, 2013
  6. Junio C HamanoApr 16, 2013
  7. Brandon CaseyApr 16, 2013
  8. Ramkumar RamachandraApr 16, 2013
  9. Ramkumar RamachandraApr 16, 2013
  10. Brandon CaseyApr 16, 2013
  11. Ramkumar RamachandraApr 17, 2013
  12. Junio C HamanoApr 17, 2013

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.