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

Re: [PATCH v4 9/9] Documentation: git stash branch now tolerates non-stash references.

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 13, 2010, 00:49 UTC
Message-ID
<7vr5i3mj4h.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1281398688-21008-10-git-send-email-jon.seymour@gmail.com>
Jon Seymour <jon.seymour@gmail.com> writes:
Show 44 quoted lines
> Update the documentation to indicate that git stash branch only attempts
> to drop the specified stash if it looks like stash reference.
>
> Also changed the synopsis to more clearly indicate which commands require
> a stash entry reference as opposed to merely a stash-like commit.
>
> Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
> ---
>  Documentation/git-stash.txt |   37 ++++++++++++++++++++-----------------
>  1 files changed, 20 insertions(+), 17 deletions(-)
>
> diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
> index 473889a..499ac48 100644
> --- a/Documentation/git-stash.txt
> +++ b/Documentation/git-stash.txt
> @@ -9,10 +9,11 @@ SYNOPSIS
>  --------
>  [verse]
>  'git stash' list [<options>]
> -'git stash' show [<stash>]
> -'git stash' drop [-q|--quiet] [<stash>]
> -'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]
> -'git stash' branch <branchname> [<stash>]
> +'git stash' show [<stash-like>]
> +'git stash' drop [-q|--quiet] [<stash-entry>]
> +'git stash' pop [--index] [-q|--quiet] [<stash-entry>]
> +'git stash' apply [--index] [-q|--quiet] [<stash-like>]
> +'git stash' branch <branchname> [<stash-like>]
>  'git stash' [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [<message>]]
>  'git stash' clear
>  'git stash' create
> @@ -80,15 +81,15 @@ stash@{1}: On master: 9cc0589... Add git-stash
>  The command takes options applicable to the 'git log'
>  command to control what is shown and how. See linkgit:git-log[1].
>  
> -show [<stash>]::
> +show [<stash-like>]::
>  
>  	Show the changes recorded in the stash as a diff between the
> -	stashed state and its original parent. When no `<stash>` is given,
> +	stashed state and its original parent. When no `<stash-like>` is given,
>  	shows the latest one. By default, the command shows the diffstat, but
>  	it will accept any format known to 'git diff' (e.g., `git stash show
>  	-p stash@\{1}` to view the second most recent stash in patch form).
Hmm.

Is there anything that describes how <stash-like>, <stash-entry> and <stash> relate to each other? I do not think a regular reader can answer by reading the description after the patch these questions:

 - Is a <stash-entry> a <stash-like>?
 - Is the opposite true?
etc...

Perhaps we can simply call these two-parent merge commits a <stash>, define that these commands as working on a <stash>, add notes to certain subcommands that the <stash> they take must be on the stash ref (as opposed to a freestanding one you can create with "stash create"), and be done with it?

Also what is the error condition? I am assuming that your <stash-entry> is a <stash-like> that is on the reflog of refs/stash, but if you give a <stash-like> that is not a <stash-entry> (iow a freestanding <stash>) to a subcommand that wants to see <stash-entry>, what happens, and does the document describe it as an error?

Show 5 quoted lines
> -pop [--index] [-q|--quiet] [<stash>]::
> +pop [--index] [-q|--quiet] [<stash-entry>]::
>  
>  	Remove a single stashed state from the stash list and apply it
>  	on top of the current working tree state, i.e., do the inverse
Previous: Jon SeymourNext: Jon Seymour
Message 29 of 30 in “stash: modifiy handling of stash-like references”
  1. 0/9 stash: modifiy handling of stash-like referencesJon Seymour, Aug 8, 2010
  2. 1/9 stash: refactor - create pop_stash functionJon Seymour, Aug 8, 2010
  3. 2/9 stash: extract stash-like check into its own functionJon Seymour, Aug 8, 2010
  4. 3/9 stash: introduce is_stash_ref and assert_stash_ref functions.Jon Seymour, Aug 8, 2010
  5. 4/9 stash: teach git stash pop to fail early if the argument is not a stash refJon Seymour, Aug 8, 2010
  6. 5/9 stash: teach git stash drop to fail early if the specified revision is not a stash referenceJon Seymour, Aug 8, 2010
  7. 6/9 stash: teach git stash branch to tolerate stash-like argumentsJon Seymour, Aug 8, 2010
  8. 7/9 stash: teach git stash show to always tolerate stash-like arguments.Jon Seymour, Aug 8, 2010
  9. 8/9 t3903-stash.sh: tests of git stash with stash-like argumentsJon Seymour, Aug 8, 2010
  10. Johannes SixtAug 8, 2010
  11. Jon SeymourAug 8, 2010
  12. 9/9 Documentation: git stash branch now tolerates non-stash references.Jon Seymour, Aug 8, 2010
  13. Jon SeymourAug 8, 2010
  14. 0/9 stash: modifiy handling of stash-like referencesJon Seymour, Aug 10, 2010
  15. 1/9 stash: refactor - create pop_stash functionJon Seymour, Aug 10, 2010
  16. 2/9 stash: extract stash-like check into its own functionJon Seymour, Aug 10, 2010
  17. Junio C HamanoAug 13, 2010
  18. Jon SeymourAug 13, 2010
  19. 3/9 stash: introduce is_stash_ref and assert_stash_ref functions.Jon Seymour, Aug 10, 2010
  20. Junio C HamanoAug 13, 2010
  21. Jon SeymourAug 14, 2010
  22. 4/9 stash: teach git stash pop to fail early if the argument is not a stash refJon Seymour, Aug 10, 2010
  23. 5/9 stash: teach git stash drop to fail early if the specified revision is not a stash referenceJon Seymour, Aug 10, 2010
  24. 6/9 stash: teach git stash branch to tolerate stash-like argumentsJon Seymour, Aug 10, 2010
  25. 7/9 stash: teach git stash show to always tolerate stash-like arguments.Jon Seymour, Aug 10, 2010
  26. Junio C HamanoAug 13, 2010
  27. 8/9 t3903-stash.sh: tests of git stash with stash-like argumentsJon Seymour, Aug 10, 2010
  28. 9/9 Documentation: git stash branch now tolerates non-stash references.Jon Seymour, Aug 10, 2010
  29. Junio C HamanoAug 13, 2010
  30. Jon SeymourAug 14, 2010

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.