From ff5d23638b198438906fa3f91cee38a8b1dbc82e Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 8 Mar 2023 08:22:32 +0100 Subject: [PATCH] Restore .git-hooks/commit-msg ...that 729ae5135042427b62a856d792f51afad1026622 "Update Sifr Mimetype Icons" had modified, presumably in error Change-Id: I077eeb2d304d145a68edceae7196417b329adaee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148458 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- .git-hooks/commit-msg | 140 +++++++++++++++++++++++++++++------------- 1 file changed, 97 insertions(+), 43 deletions(-) diff --git a/.git-hooks/commit-msg b/.git-hooks/commit-msg index 2adf4c381d34..950a6b709d9a 100755 --- a/.git-hooks/commit-msg +++ b/.git-hooks/commit-msg @@ -1,5 +1,82 @@ #!/bin/sh -# From Gerrit Code Review 3.6.3 +# +# Called by git-commit with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, make this file executable. + +# avoid [[ which is not POSIX sh. + +if test "$#" != 1 ; then + echo "$0 requires an argument." + exit 1 +fi + +if test ! -f "$1" ; then + echo "file does not exist: $1" + exit 1 +fi + +abort() { + cp $1 $1.save + cat >&2 <'`" ] ; then + abort "$1" "The commit message looks like ChangeLog, please use the git form." +fi + +# Check that lines do not start with '#' (possibly accidental commit, +# such as starting the message with '#ifdef', git commits start with '#'. + +if [ -n "`grep '^#[^[:blank:]]' $1`" ] ; then + abort "$1" "Possible accidental comment in the commit message (leading # without space)." +fi + +# From Gerrit Code Review 2.16.15 # # Part of Gerrit Code Review (https://www.gerritcodereview.com/) # @@ -17,65 +94,42 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -u - -# avoid [[ which is not POSIX sh. -if test "$#" != 1 ; then - echo "$0 requires an argument." - exit 1 -fi - -if test ! -f "$1" ; then - echo "file does not exist: $1" - exit 1 -fi - # Do not create a change id if requested -if test "false" = "$(git config --bool --get gerrit.createChangeId)" ; then - exit 0 +if test "false" = "`git config --bool --get gerrit.createChangeId`" ; then + exit 0 fi -if git rev-parse --verify HEAD >/dev/null 2>&1; then - refhash="$(git rev-parse HEAD)" -else - refhash="$(git hash-object -t tree /dev/null)" -fi - -random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | git hash-object --stdin) +# $RANDOM will be undefined if not using bash, so don't use set -u +random=$( (whoami ; hostname ; date; cat $1 ; echo $RANDOM) | git hash-object --stdin) dest="$1.tmp.${random}" trap 'rm -f "${dest}"' EXIT if ! git stripspace --strip-comments < "$1" > "${dest}" ; then - echo "cannot strip comments from $1" - exit 1 + echo "cannot strip comments from $1" + exit 1 fi if test ! -s "${dest}" ; then - echo "file is empty: $1" - exit 1 + echo "file is empty: $1" + exit 1 fi -reviewurl="$(git config --get gerrit.reviewUrl)" -if test -n "${reviewurl}" ; then - if ! git interpret-trailers --parse < "$1" | grep -q '^Link:.*/id/I[0-9a-f]\{40\}$' ; then - if ! git interpret-trailers \ - --trailer "Link: ${reviewurl%/}/id/I${random}" < "$1" > "${dest}" ; then - echo "cannot insert link footer in $1" - exit 1 - fi - fi -else - # Avoid the --in-place option which only appeared in Git 2.8 - # Avoid the --if-exists option which only appeared in Git 2.15 - if ! git -c trailer.ifexists=doNothing interpret-trailers \ +# Avoid the --in-place option which only appeared in Git 2.8 +# Avoid the --if-exists option which only appeared in Git 2.15 +if ! git -c trailer.ifexists=doNothing interpret-trailers \ --trailer "Change-Id: I${random}" < "$1" > "${dest}" ; then echo "cannot insert change-id line in $1" exit 1 - fi fi if ! mv "${dest}" "$1" ; then - echo "cannot mv ${dest} to $1" - exit 1 + echo "cannot mv ${dest} to $1" + exit 1 fi + +#------------------ copied gerrit commit-msg hook to handle ChangeId <-- + +exit 0 + +# vi:set shiftwidth=4 expandtab: