On 2014-09-21 20.04, Rémi Vanicat wrote:
> Hello,
>
> I found what look like a bug in git status:
> `git status -unormal foo[b]/` won't output the content of the directory
> foo[b] when `git status -unormal foo/` will output the content of the
> directory foo:
>
> $ mkdir 'foo[b]'
> $ touch 'foo[b]/bar'
> $ git status -unormal 'foo[b]/'
> On branch master
> Untracked files:
> (use "git add <file>..." to include in what will be committed)
>
> foo[b]/
>
> nothing added to commit but untracked files present (use "git add" to track)
> $ mkdir 'foo'
> $ touch 'foo/bar'
> $ git status -unormal 'foo/'
> On branch master
> Untracked files:
> (use "git add <file>..." to include in what will be committed)
>
> foo/bar
>
> nothing added to commit but untracked files present (use "git add" to track)
>
> The documentation of git status contain nothing about treating bracket
> specially. Quoting the brackets do not solve the problem.
>
> see https://github.com/magit/magit/issues/1512 for discussion about it
> (in the case of git status --porcelain).
>
git status takes a "pathspec" as a parameter, which is not the same as a
filename.
A pathspec can contain wildcards like '*' or '?' or things like "*[ch]".
This is known as shell glob syntax (or so), and used automatically by all
shells.
Git allows to use "git add *.[ch]" (where the shell expands the glob) or
"git add '*.[ch]'" where Git does the expansion.
You can turn of the glob handling in a pathspec by using this:
GIT_LITERAL_PATHSPECS=1 git status -unormal 'foo[b]/'
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
foo[b]/bar
-------------------
Side note:
If somebody feels that the documentation can be better: we appreciate patches.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html