jedbrown / git-fat

Simple way to handle fat files without committing them to git, supports synchronization using rsync
BSD 2-Clause "Simplified" License
622 stars 137 forks source link

Speed up "git fat checkout" and "git fat pull" #68

Open purdeaandrei-movi opened 9 years ago

purdeaandrei-movi commented 9 years ago

Refactor the "git fat checkout" operation (and therefore also "git fat pull") to significantly improve its speed.

The main change here is that git checkout-index is now called only a single time for all files. In some tests the performance improvement is six-fold.

With this change it doesn't make sense anymore to print out each file as it is being processed, so only the number of files that need to be restored is shown. The actual filenames are only printed if git-fat is verbose.

purdeaandrei-movi commented 9 years ago

Added two more commits. Please note that right now if you enable verbose mode with export GIT_FAT_VERBOSE=1, then this will also enable verbose mode in the calls that git in turn makes to the git-fat filters. So the output will be very verbose.

There will be a lot of "git-fat filter-smudge: restoring from .git/fat/objects/" messages in addition to the list of files generated in one of the above commits.

purdeaandrei-movi commented 9 years ago

bump?