From c9a8bd6f4d0c2e7e7f5e23e2e912581e13a69b5a Mon Sep 17 00:00:00 2001 From: Leandro Reina Date: Mon, 25 Nov 2024 21:00:45 +0100 Subject: [PATCH] Work around https://github.com/libgit2/libgit2/issues/6946 --- src/libfetchers/git-lfs-fetch.hh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/libfetchers/git-lfs-fetch.hh b/src/libfetchers/git-lfs-fetch.hh index e3ad38f42..108af12d9 100644 --- a/src/libfetchers/git-lfs-fetch.hh +++ b/src/libfetchers/git-lfs-fetch.hh @@ -359,6 +359,15 @@ std::vector parseGitAttrFile(const std::string & content) AttrRule rule; rule.pattern = line.substr(0, pattern_end); + // Workaround for libgit2 matching issues when the pattern starts with a recursive glob + // These should effectively match the same files + // https://github.com/libgit2/libgit2/issues/6946 + if (rule.pattern.starts_with("/**/")) { + rule.pattern = rule.pattern.substr(4); + } + while (rule.pattern.starts_with("**/")) { + rule.pattern = rule.pattern.substr(3); + } git_strarray patterns = {0}; const char * pattern_str = rule.pattern.c_str();