Re: pre-commit hook not run on conflict resolution during rebase

2015-05-29 Thread Stefan Haller
Junio C Hamano gits...@pobox.com wrote:

 li...@haller-berlin.de (Stefan Haller) writes:
 
  I guess the next best solution would be to also have a pre-push hook
  that performs the same checks again, just in case the bad code managed
  to get past the pre-commit hook for some reason or other. This feels
  very redundant, but I guess it would work well.
 
 I'd say pre-receive would be the most sensible place to check things
 like this.

Yes, I totally agree, and we used to have this setup when we were still
hosting our code in-house; with pre-receive doing the authorative
checks, and pre-commit being optional as a convenience for developers,
as you say.

Now we have moved most of our code to github, and you can't have
pre-receive hooks there, as far as I can tell. (I should have mentioned
that, sorry.)

To make up for that, we have put considerable effort into ensuring that
everyone on the team has up-to-date hooks locally, by installing them
automatically as part of our build system infrastructure.

In that light, do you agree that a pre-push hook is the best we can do
now to plug this hole?


-- 
Stefan Haller
Berlin, Germany
http://www.haller-berlin.de/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: pre-commit hook not run on conflict resolution during rebase

2015-05-28 Thread Junio C Hamano
li...@haller-berlin.de (Stefan Haller) writes:

 When a rebase stops because of a conflict, and I edit the file to
 resolve the conflict and say git rebase --continue, then the
 pre-commit hook doesn't run at that point,...
 From glancing through the githooks manpage, I couldn't see any other
 hook that would help in this situation. Am I missing something?

I do not think so.  There may be some fallouts, like negatively
affecting folks who have been relying on the current behaviour, but
I do not see a fundamental reason why that hook should not trigger
there (it may not trigger in the current implementation, but I view
it as lack of need so far, not a deliberate omission).

 I guess the next best solution would be to also have a pre-push hook
 that performs the same checks again, just in case the bad code managed
 to get past the pre-commit hook for some reason or other. This feels
 very redundant, but I guess it would work well.

I'd say pre-receive would be the most sensible place to check things
like this.  Some of your developers may not have pre-commit hook or
even run commit --no-verify to bypass the local check, and if you
have a central meeting place for the efforts by all your folks, that
is where you want to enforce the policy.

Checks done anywhere else are what are redundant, including the
pre-commit hook in individual developers.  You can view them as a
way for individual developers to save their time---by choosing to
check locally, they make sure their commits do not trigger the
pre-receive hook at the central place.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


pre-commit hook not run on conflict resolution during rebase

2015-05-28 Thread Stefan Haller
When a rebase stops because of a conflict, and I edit the file to
resolve the conflict and say git rebase --continue, then the
pre-commit hook doesn't run at that point, which means that I can commit
bad stuff which the pre-commit hook would normally not allow in. We were
bitten by this a few times already. (In our case, the hook rejects code
that hasn't been run through clang-format. That's easy to forget when
resolving conflicts during a rebase.)

From glancing through the githooks manpage, I couldn't see any other
hook that would help in this situation. Am I missing something?

I guess the next best solution would be to also have a pre-push hook
that performs the same checks again, just in case the bad code managed
to get past the pre-commit hook for some reason or other. This feels
very redundant, but I guess it would work well.

Any other suggestions?


-- 
Stefan Haller
Berlin, Germany
http://www.haller-berlin.de/
 
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html