git supports .gitattributes filters with folder names and wildcards (i.e. subpath/**/*.raw filter=bigstore. However, if you are not in the main path and do a git bigstore push, it will silently fail.
This is because in the current version, a fnmatch is called with the base filename and wildcard here.
If you are in the folder subpath that contains the file foo.raw, fnmatch will fail because it is comparing subpath/**/*.raw to foo.raw.
This issue should be fixed by replacing the line:
- if fnmatch.fnmatch(filename, wildcard):
+ full_filename = os.path.join(os.getcwd(), filename)
+ rel_filename = os.path.relpath(full_filename, toplevel_dir)
+ if fnmatch.fnmatch(rel_filename, wildcard):
(I figured this change was too small to do a separate pull request).
git supports .gitattributes filters with folder names and wildcards (i.e.
subpath/**/*.raw filter=bigstore
. However, if you are not in the main path and do agit bigstore push
, it will silently fail.This is because in the current version, a fnmatch is called with the base filename and wildcard here. If you are in the folder
subpath
that contains the filefoo.raw
, fnmatch will fail because it is comparingsubpath/**/*.raw
tofoo.raw
.This issue should be fixed by replacing the line:
(I figured this change was too small to do a separate pull request).