On 04/24/2013 09:54 PM, Junio C Hamano wrote: > None of the above is part of a proper commit log message, is it? Fixed (I hope) >> Signed-off-by: Sebastian Götte <jaseg@xxxxxxxxxxxxxxxxxxxxxxxx> >> diff --git a/templates/hooks--pre-push.sample b/templates/hooks--pre-push.sample >> old mode 100644 >> new mode 100755 > Why? According to man githooks(5): >It is also a requirement for a given hook to be executable. However - in a >freshly initialized repository - the .sample files are executable by default. This file is the only one in templates/ that was not executable, so I assume this was a mistake. >> index 15ab6d8..08a72df >> --- a/templates/hooks--pre-push.sample >> +++ b/templates/hooks--pre-push.sample >> -# This sample shows how to prevent push of commits where the log message starts >> -# with "WIP" (work in progress). >> +# This sample shows how to prevent pushing commits without good GPG signatures > What justifies to remove existing demonstration? It is far easier > for the end users to remove parts that do not apply to their needs, > than coming up with a solution to add themselves without help from > an example. re-added it. >> +ec=0 > I think it is more customary to call this kind of variable "ret" or > "retval", not an abbreviation for "european commission" ;-). renamed it to "exitcode". >> -IFS=' ' > Why? Otherwise in the for-loop below the output of the pipe chain is not correctly split by newlines. Also AFAIK, this is not needed: I think the default '<space><tab><newline>' is just fine here. >> + commits=`git log --format="%G? %h" "$range" | grep -v '^G' | cut -d\ -f2` > Useless use of cut. You could do I just tried this, but I really want the script to output a list of *all* offending commits (instead of exiting on the first problem). For this I need the exitcode variable, but since at least bash executes the while loop in a subshell due to the preceding pipe, I have some issues getting that out of the subshell. This is what the code looked like without grep/cut: ># Check for missing good GPG signatures >git log --format="%G? %h" "$range" | >( > exitcode=0 > while read sign commit > do > test "$sign" = G && continue > echo "Commit $commit does not have a good GPG signature" > exitcode=1 > done > exit $exitcode >) >let exitcode=exitcode\|$? This is less readable and only spawns one process less. Sebastian Götte (1): templates: pre-push hook: check for missing GPG signatures templates/hooks--pre-push.sample | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) mode change 100644 => 100755 templates/hooks--pre-push.sample -- 1.8.2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html