Subject: Re: bug#9480: 24.0.50; (vc-git) stash@{n} - requires shell quoting?

From: Jambunathan K <[email-masked]>
Date: Mon, 12 Sep 2011 14:35:48 +0530

Eli Zaretskii <[email-masked]> writes:

>> From: Jambunathan K <[email-masked]>
>> Date: Mon, 12 Sep 2011 12:39:43 +0530
>> 
>> While in a *vc-dir* buffer (backed by git) and trying to show or apply a
>> stash fails.
>> 
>> I am attaching "works for me" patch that shell-quotes stash@{n}
>> argument. With this "patch", the stash commands work as expected.
>> 
>> My shell-file-name is set to "bash" (cygwin version). My Emacs is
>> 
>> In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
>
> Can you tell what does git see as its arguments without the quoting?
> I would like to establish whether this is some bug specific to the
> Windows build of Emacs, since other systems that use Bash evidently
> don't need this change.

With the failing setup and
(setq vc-command-messages t)

I see the following in the *Messages* buffer and it seems OK to me

,----  *Messages* 
| Running git update-index --refresh . in background... done
| Running git diff-index --relative -z -M HEAD -- . in background... done
| Running git ls-files -z -o --directory --no-empty-directory --exclude-standard -- . in background... done
| Running git stash show -p stash@{0} . in background... done
`----

But in the *vc-git-stash* buffer I see the following message

,----  *vc-git-stash* 
| '-p stash@0' is not a stash
`----

Not the absence of `{' `}' in the error report. I hope that provides
some clue on what the underlying git sees.

With my "works for me" changes, I see the following

,---- *Messages*
| Running git stash show -p stash\@\{0\} . in background... done
`----

,---- *vc-git-stash*
| diff --git a/contrib/lisp/org-odt.el b/contrib/lisp/org-odt.el
| index 5bc73a7..91c98ea 100644
| --- a/contrib/lisp/org-odt.el
| +++ b/contrib/lisp/org-odt.el
| @@ -636,7 +636,28 @@ PUB-DIR is set, use this as the publishing directory."
|  (defvar org-lparse-table-is-styled)
|  (defvar org-lparse-table-rowgrp-info)
|  (defvar org-lparse-table-colalign-vector)
| +
| [snip]
`----

Let me know if you need more information.

FWIW, git is also from cygwin installation.

Jambunathan K.