A git fsmonitor hook written in Rust.
Homebrew is the recommended way to install in Mac environments:
brew tap jgavris/rs-git-fsmonitor https://github.com/jgavris/rs-git-fsmonitor.git && brew install rs-git-fsmonitor
# Configure git repository to use the tool (run in desired large git repository):
git config core.fsmonitor rs-git-fsmonitor
Habitat is the recommended way to install in Linux environments:
# Install and link packages
sudo hab pkg install --binlink jgavris/rs-git-fsmonitor
# Configure git repository to use the tool (run in desired large git repository):
git config --global core.fsmonitor rs-git-fsmonitor
Git 2.16 added support for a core.fsmonitor
hook to allow an external tool to inform it which files have changed.
https://blog.github.com/2018-04-05-git-217-released/#speeding-up-status-with-watchman
On repositories with many files, this can be a dramatic speedup.
λ find . -type f | wc -l
30737
Before:
λ time git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit (use -u to show untracked files)
real 0m0.129s
user 0m0.062s
sys 0m0.268s
After:
λ time git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit (use -u to show untracked files)
real 0m0.067s
user 0m0.030s
sys 0m0.026s
MIT