• D
    pathspec: avoid the need of "--" when wildcard is used · 28fcc0b7
    Duy Nguyen 提交于
    When "--" is lacking from the command line and a command can take
    both revs and paths, the idea is if an argument can be seen as both
    an extended SHA-1 and a path, then "--" is required or git refuses
    to continue. It's currently implemented as:
    
     (1) if an argument is rev, then it must not exist in worktree
    
     (2) else, it must exist in worktree
    
     (3) else, "--" is required.
    
    These rules work for literal paths, but when non-literal pathspec is
    involved, it almost always requires the user to add "--" because it
    fails (2) and (1) is really rarely met (take "*.c" for example, (1)
    is met if there is a ref named "*.c").
    
    This patch modifies the rules a bit by considering any valid (*)
    wildcard pathspec "exist in worktree". The rules become:
    
     (1) if an arg is a rev, then it must either exist in worktree or
         not be a valid wildcard pathspec.
    
     (2) else, it either exists in worktree or is a wildcard pathspec
    
     (3) else, "--" is required.
    
    With the new rules, "--" is not needed most of the time when
    wildcard pathspec is involved.
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    28fcc0b7
setup.c 22.8 KB