From: Jon Seymour Date: Fri, 13 Aug 2010 23:55:24 GMT Subject: Re: [PATCH v4 2/9] stash: extract stash-like check into its own function Message-ID: In-Reply-To: <7v8w4bnxpj.fsf@alter.siamese.dyndns.org> On Fri, Aug 13, 2010 at 10:49 AM, Junio C Hamano wrote: > Jon Seymour 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 ;-) > >> +# 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. > My bad. You are quite correct. I was a little _too_ eager to remove a redundancy. This also explains my misconceived "Note tor reviewers"! I'll fix in the next round.