Re: [Bug] git status -unormal -- 'foo[b]/' won't display content of 'foo[b]/

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 22, 2014 at 8:24 AM, Duy Nguyen <pclouds@xxxxxxxxx> wrote:
> On Mon, Sep 22, 2014 at 2:52 AM, Torsten Bögershausen <tboegi@xxxxxx> wrote:
>> 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.
>
> From the top of my head, pathspec should match as if it's literal
> string too. Not sure if it applies to this case. I'll check later..

FWIW the "problem" is in dir.c, function common_prefix_len(). We use
this one to determine a shared parent directory, e.g. foo/bar and
foo/baarr share "foo/", so that we could start looking for untracked
files from "foo" instead of ".". The shared directory search only
cares about non-wildcard letters. So in the case of "foo/" it finds
the "shared" dir "foo", but in "foo[b]/" it stops at '[' and decides
the shared dir is ".".

But this difference should not lead to any differences in output
because that's more about traversal optimization. But somehow we treat
the first directory different than subdirs. If a subdir is entirely
untracked/ignored, we show "subdir/" (with -unormal) but if it's the
first examined directory then we show everything inside. This is
something we should fix if you guys really depend on a consistent
behavior. But if it's fixed, then "foo/" case above would show "foo/"
not "foo/bar". Or just call it a quirk of -unormal and magit should
use -uall instead.
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]