git-lfs/git
brian m. carlson 0d31bce1c1
git/githistory: cache files based on full path
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.
2022-01-18 14:22:32 +00:00
..
gitattr Set package version to v3 2021-09-02 20:41:08 +00:00
githistory git/githistory: cache files based on full path 2022-01-18 14:22:32 +00:00
attribs.go post-checkout: don't modify permissions of untracked files 2021-12-06 13:44:33 +00:00
config_test.go Set package version to v3 2021-09-02 20:41:08 +00:00
config.go Fix typos 2022-01-05 08:49:08 +02:00
filter_process_scanner_test.go git: use pktline repository 2021-07-20 18:37:31 +00:00
filter_process_scanner.go Set package version to v3 2021-09-02 20:41:08 +00:00
filter_process_status.go git: introduce type 'FilterProcessStatus' 2017-08-24 18:28:50 -04:00
git_test.go Set package version to v3 2021-09-02 20:41:08 +00:00
git.go Fix typos 2022-01-05 08:49:08 +02:00
ls_files.go post-checkout: don't modify permissions of untracked files 2021-12-06 13:44:33 +00:00
ls_tree_scanner_test.go commands/fsck: exit 1 on failed fsck 2021-07-14 18:15:31 +00:00
ls_tree_scanner.go fsck: don't detect symlinks as invalid pointers 2021-10-20 20:51:41 +00:00
object_scanner.go Support SHA-256 repositories 2020-07-29 20:53:44 +00:00
refs_test.go git: port over existing commands.refUpdate tests 2018-01-05 15:18:17 -07:00
refs.go git: remove unnecessary debug trace messages 2018-01-17 11:06:23 -07:00
rev_list_scanner_test.go git: avoid "bad object" messages when force-pushing 2020-04-23 15:13:31 +00:00
rev_list_scanner.go Set package version to v3 2021-09-02 20:41:08 +00:00
version.go Set package version to v3 2021-09-02 20:41:08 +00:00