Skip to content

Instantly share code, notes, and snippets.

@thomcc
Created January 19, 2018 19:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save thomcc/4c23eeed3b248394bffa0bff04f5c00b to your computer and use it in GitHub Desktop.
Save thomcc/4c23eeed3b248394bffa0bff04f5c00b to your computer and use it in GitHub Desktop.

Steps to faster git on mac.

  1. Update to git 2.16

  2. Setup file monitoring with hgwatchman

    1. Run
    $ brew install watchman
    $ cd /path/to/mozilla-central
    $ watchman watch-project .
    
    1. Download my slightly modified version of the default git fsmonitor-watchman hook from here and put it at .git/hooks/fsmonitor-watchman.
    2. Run git config --local core.fsmonitor ".git/hooks/fsmonitor-watchman"
  3. Enable git's split-index feature

    1. Run
    $ git update-index --split-index
    $ git config --system core.splitIndex true
    
    1. Optionally, run git config --local splitIndex.maxPercentChange 10. The default is 20, which is too high for repos the size of gecko. YMMV for a good value, you can also skip this and run git update-index --split-index whenever things start getting slow to force it to re-split the index.
  4. Enable git's untracked file cache

    1. Run git update-index --test-untracked-cache. If it tells you you can, then
    2. Run git update-index --untracked-cache, and git config --system core.untrackedCache true.
  5. If you still have a slow prompt, it's probably computing modifications in a bad way. Parsing them out of git status --porcelain is the fastest, but many use git diff --name-only or similar, which is very slow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment