lefthook
lefthook copied to clipboard
Rebasing is slow and noisy
When rebasing, lefthook appears to be re-installing itself on every commit. I see a lot of console output that looks like this:
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac install
/Users/holodakg/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/lefthook-0.6.7/libexec/lefthook-mac run prepare-commit-msg .git/COMMIT_EDITMSG message
This also ends up being much slower than a rebase without lefthook.
I assume this is related to https://github.com/Arkweid/lefthook/issues/74. Any thoughts on moving towards a better solution?
If you need to disable lefthook you can just run it like this:
LEFTHOOK=0 git rebase ...
I suspect this might be related to something I've just seen which is if you try rebasing the branch in which you added lefthook to reorder commits, then lefthook creates a conflict with itself; that is, lefthook automatically creates a lefthook.yml file, but a later commit in your rebase adds that file, the two conflict so the rebase breaks.
@Arkweid the specific error I was seeing was because of the auto-install functionality: https://github.com/Arkweid/lefthook/blob/7de5f82358b969bb4ae49096659665229e4dc8c8/cmd/install.go#L66-L69
Should I create a new issue for this?
@ThisIsMissEm yea, you could
Is it possible to ask lefthook to only run when I commit something and not when I am rebasing?
There is a PR that fixes this! https://github.com/evilmartians/lefthook/pull/173
I guess that this is not actual. But feel free to reopen the issue if it still reproduces.