Re: [PATCH v4 2/9] stash: extract stash-like check into its own function
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 13, 2010, 00:49 UTC
- Message-ID
- <7v8w4bnxpj.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1281398688-21008-3-git-send-email-jon.seymour@gmail.com>
Jon Seymour <jon.seymour@gmail.com> writes:
> A similar code block is used in three places; this change > factors the stash-like check into a separate function so that > it can be used in these and other places.
"git stash show" used to be able to show a single-parent commit, and we are forbidding that "feature". I'd actually call that a bugfix though ;-)
Show 16 quoted lines
> +# if this function returns, then:
> +# s is set to the stash commit
> +# w_commit is set to the commit containing the working tree
> +# b_commit is set to the base commit
> +# i_commit is set to the commit containing the index tree
> +# otherwise:
> +# the function exits via die
> +#
> +assert_stash_like() {
> + # stash records the work tree, and is a merge between the
> + # base commit (first parent) and the index tree (second parent).
> + s=$(git rev-parse --revs-only --quiet --verify --default $ref_stash "$@") &&
> + w_commit=$(git rev-parse --quiet --verify "$s:") &&
> + b_commit=$(git rev-parse --quiet --verify "$s^1:") &&
> + i_commit=$(git rev-parse --quiet --verify "$s^2:") ||
> + die "$*: no valid stashed state found"Don't these "rev-parse" calls return tree objects? It is too confusing to call them x_commit if that is the case.