0d31bce1c1
When we cache files, do so on the full path instead of just the directory entry. This means that when we have an identical file with the same name in two different direectories, we distinguish between the two paths and ensure both are added to .gitattributes. This is an alternate solution to #4671 which should perform better. For compmarison, with a clone of Git's main repository with the following command, we get: git lfs migrate import --everything --include="*.h": * v3.0.1 (broken): 608s user, 53s system, 5:34 total * v3.0.2 (fixed): 13435s user, 1255s system, 1:43:17 total * this commit (fixed): 716s user, 67s system, 6:59 total This is a much better performance characteristic for equivalent results. Preserve the integration from the earlier attempt at fixing this plus add an additional one. Avoid using assert_pointer in the new test because that helper doesn't always work correctly when there are two files with the same file name. |
||
---|---|---|
.. | ||
gitattr | ||
githistory | ||
attribs.go | ||
config_test.go | ||
config.go | ||
filter_process_scanner_test.go | ||
filter_process_scanner.go | ||
filter_process_status.go | ||
git_test.go | ||
git.go | ||
ls_files.go | ||
ls_tree_scanner_test.go | ||
ls_tree_scanner.go | ||
object_scanner.go | ||
refs_test.go | ||
refs.go | ||
rev_list_scanner_test.go | ||
rev_list_scanner.go | ||
version.go |