Skip to content
  • Brandon Casey's avatar
    attr.c: respect core.ignorecase when matching attribute patterns · 6eba6210
    Brandon Casey authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    When core.ignorecase is true, the file globs configured in the
    .gitattributes file should be matched case-insensitively against the paths
    in the working directory.  Let's do so.
    
    Plus, add some tests.
    
    The last set of tests is performed only on a case-insensitive filesystem.
    Those tests make sure that git handles the case where the .gitignore file
    resides in a subdirectory and the user supplies a path that does not match
    the case in the filesystem.  In that case^H^H^H^Hsituation, part of the
    path supplied by the user is effectively interpreted case-insensitively,
    and part of it is dependent on the setting of core.ignorecase.  git will
    currently only match the portion of the path below the directory holding
    the .gitignore file according to the setting of core.ignorecase.
    
    This is also partly future-proofing.  Currently, git builds the attr stack
    based on the path supplied by the user, so we don't have to do anything
    special (like use strcmp_icase) to handle the parts of that path that don't
    match the filesystem with respect to case.  If git instead built the attr
    stack by scanning the repository, then the paths in the origin field would
    not necessarily match the paths supplied by the user.  If someone makes a
    change like that in the future, these tests will notice.
    
    Signed-off-by: default avatarBrandon Casey <drafnel@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    6eba6210