-
-
Save ttaylorr/6cfa3eb9fd012f81b833873d50f96f71 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
test_description='Tests pack performance using bitmaps' | |
. ./perf-lib.sh | |
test_perf_large_repo | |
# note that we do everything through config, | |
# since we want to be able to compare bitmap-aware | |
# git versus non-bitmap git | |
test_expect_success 'setup bitmap config' ' | |
git config pack.writebitmaps true && | |
git config pack.writebitmaphashcache true | |
' | |
test_expect_success 'repack to disk' ' | |
git repack -ad | |
' | |
test_size 'simulated clone' ' | |
git pack-objects --stdout --all </dev/null | wc -c | |
' | |
test_size 'simulated fetch' ' | |
have=$(git rev-list HEAD --until=1.week.ago -1) && | |
{ | |
echo HEAD && | |
echo ^$have | |
} | git pack-objects --revs --stdout | wc -c | |
' | |
test_expect_success 'create partial bitmap state' ' | |
# pick a commit to represent the repo tip in the past | |
cutoff=$(git rev-list HEAD --until=1.week.ago -1) && | |
orig_tip=$(git rev-parse HEAD) && | |
# now kill off all of the refs and pretend we had | |
# just the one tip | |
rm -rf .git/logs .git/refs/* .git/packed-refs && | |
git update-ref HEAD $cutoff && | |
# and then repack, which will leave us with a nice | |
# big bitmap pack of the "old" history, and all of | |
# the new history will be loose, as if it had been pushed | |
# up incrementally and exploded via unpack-objects | |
git repack -Ad && | |
# and now restore our original tip, as if the pushes | |
# had happened | |
git update-ref HEAD $orig_tip | |
' | |
test_size 'partial bitmap' ' | |
git pack-objects --stdout --all </dev/null | wc -c | |
' | |
test_done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment