On Wed, Mar 14 2018, Derrick Stolee jotted:
> Hopefully this version is ready to merge. I have several follow-up topics
> in mind to submit soon after, including:
I've been doing some preliminary testing of this internally, all good so
far, on a relatively small repo (~100k commits) I was using for testing:
- git -c core.commitGraph=true -C <repo> rev-list --all:
- /mnt/ext4_graph => min:273 mean:279 max:389 -- (273 274
275 276 277 279 282 282 345 389)
- /mnt/ext4 => min:1087 mean:1123 max:1175 -- (1087
1092 1092 1104 1117 1123 1126 1136 1143 1175)
This is on a fresh clone with one giant pack and where the commit graph
data was generated afterwards with "git commit-graph write" for the
*_graph repo, so it contains all the commits.
So less than 25% of the mean time it spent before. Nice. Those are times
in milliseconds over 10 runs, for this particular one I didn't get much
of an improvement in --graph, but still ~10%:
- git -c core.commitGraph=true -C <repo> log --oneline --graph:
- /mnt/ext4_graph => min:1420 mean:1449 max:1586 -- (1420
1423 1428 1434 1449 1449 1490 1548 1567 1586)
- /mnt/ext4 => min:1547 mean:1616 max:2136 -- (1547
1557 1581 1585 1598 1616 1621 1740 1964 2136)
I noticed that it takes a *long* time to generate the graph, on a bigger
repo I have it takes 20 minutes, and this is a repo where repack -A -d
itself takes 5-8 minutes, probably on the upper end of that with the
bitmap, but once you do that it's relatively snappy with --stdin-commits
--additive when I feed it the new commits.
I don't have any need really to make this run in 10m instead of 20m,
just something I found interesting, i.e. how it compares to the repack
itself.