lefthook icon indicating copy to clipboard operation
lefthook copied to clipboard

Rebasing is slow and noisy

Open nc-holodakg opened this issue 5 years ago • 6 comments

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?

nc-holodakg avatar Jan 10 '20 20:01 nc-holodakg

If you need to disable lefthook you can just run it like this: LEFTHOOK=0 git rebase ...

Arkweid avatar Jan 13 '20 08:01 Arkweid

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.

ThisIsMissEm avatar Jul 16 '20 15:07 ThisIsMissEm

@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 avatar Jul 16 '20 17:07 ThisIsMissEm

@ThisIsMissEm yea, you could

Arkweid avatar Jul 17 '20 16:07 Arkweid

Is it possible to ask lefthook to only run when I commit something and not when I am rebasing?

aminya avatar May 10 '21 11:05 aminya

There is a PR that fixes this! https://github.com/evilmartians/lefthook/pull/173

aminya avatar May 10 '21 11:05 aminya

I guess that this is not actual. But feel free to reopen the issue if it still reproduces.

mrexox avatar Mar 15 '23 08:03 mrexox