Skip to content
  • Brandon Williams's avatar
    ls-files: add pathspec matching for submodules · 75a6315f
    Brandon Williams authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Pathspecs can be a bit tricky when trying to apply them to submodules.
    The main challenge is that the pathspecs will be with respect to the
    superproject and not with respect to paths in the submodule.  The
    approach this patch takes is to pass in the identical pathspec from the
    superproject to the submodule in addition to the submodule-prefix, which
    is the path from the root of the superproject to the submodule, and then
    we can compare an entry in the submodule prepended with the
    submodule-prefix to the pathspec in order to determine if there is a
    match.
    
    This patch also permits the pathspec logic to perform a prefix match against
    submodules since a pathspec could refer to a file inside of a submodule.
    Due to limitations in the wildmatch logic, a prefix match is only done
    literally.  If any wildcard character is encountered we'll simply punt
    and produce a false positive match.  More accurate matching will be done
    once inside the submodule.  This is due to the superproject not knowing
    what files could exist in the submodule.
    
    Signed-off-by: default avatarBrandon Williams <bmwill@google.com>
    Reviewed-by: default avatarStefan Beller <sbeller@google.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    75a6315f