Skip to content

Conversation

@derrickstolee
Copy link
Contributor

@derrickstolee derrickstolee commented Nov 6, 2018

This PR does two things that are super-easy fixes for improving 'git push' performance.

  1. Set pack.useBitmaps to false on mount time.
  2. Update Git to Git-2.19.1.gvfs.1.3.ge56ee8b, which includes a change to stop checking ambiguous refs during 'git pack-objects'. This reduces possibly thousands of file reads of the form:
.git/<oid>
.git/refs/<oid>
.git/refs/tags/<oid>
.git/refs/heads/<oid>
.git/refs/remotes/<oid>
.git/refs/remotes/<oid>/HEAD

By setting the config value, we don't perform these file checks for the object ids that are passed into stdin.

For (1), this PR sets pack.useBitmaps to false for VFS for Git enlistments. This config value defaults to true, and during git pack-objects we check for the existence of a .bitmap file for every packfile, even those covered by the multi-pack-index.

Each of these checks took 2-3 seconds on my small test. I hope to get better numbers before merging, but want to see our scale tests.

@derrickstolee derrickstolee merged commit 37b57bb into microsoft:master Nov 7, 2018
@jrbriggs jrbriggs added this to the S147 milestone Feb 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants