On Mon, Sep 05, 2016 at 11:46:34PM +0200, Øystein Walle wrote: > The bash-specific code is a no-go, so here's a way to do it in a way > that I think is in line with Git's code style for shell scripts. I took > the liberty of removing the '|| exit 1' since the rev is verified later > on anyway, as can be seen in the last piece of context. That way the > argument munging can be done at a later stage where we don't have to > loop over multiple ones. The first rev-parse's purpose is just to apply > --sq. I wondered how that would impact the error message when there is no such stash. It looks like rev-parse will still return the bogus name on stdout, so we do not run afoul of the "No stash found" code path. We do get: $ git.compile stash show foobar foobar is not a valid reference instead of: $ git stash show foobar fatal: ambiguous argument 'foobar': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' But I do not see that as a big downside (I might even call it an improvement). -Peff