diff options
author | Andreas Fischer <bantu@phpbb.com> | 2011-03-06 15:08:29 +0100 |
---|---|---|
committer | Andreas Fischer <bantu@phpbb.com> | 2011-03-06 15:08:29 +0100 |
commit | 239cb56af09424825f6a83dea42dc3cb10d9a470 (patch) | |
tree | c51e2073c99d5085e14a92be4fddd3f755b1fc23 /git-tools/hooks/commit-msg | |
parent | e8def259ef26477e1f7ae2b338eac34142572458 (diff) | |
parent | 7027489c8ebbd1f3a77a6357db8dc6e862cd978d (diff) | |
download | forums-239cb56af09424825f6a83dea42dc3cb10d9a470.tar forums-239cb56af09424825f6a83dea42dc3cb10d9a470.tar.gz forums-239cb56af09424825f6a83dea42dc3cb10d9a470.tar.bz2 forums-239cb56af09424825f6a83dea42dc3cb10d9a470.tar.xz forums-239cb56af09424825f6a83dea42dc3cb10d9a470.zip |
Merge branch 'develop-olympus' into develop
* develop-olympus:
[ticket/9824] Accept commit messages with less than perfect headings.
[ticket/9824] Allow empty lines after ticket reference.
[ticket/9824] Use printf instead of echo to render \n.
[ticket/9824] Handle empty commit messages in commit-msg hook.
[ticket/10059] Fix two misspellings of consistent.
[ticket/9824] Add space after [ticket/12345] in prepared commit message.
[ticket/9824] Remove space after PHPBB3-12345 in prepared commit message.
Diffstat (limited to 'git-tools/hooks/commit-msg')
-rwxr-xr-x | git-tools/hooks/commit-msg | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/git-tools/hooks/commit-msg b/git-tools/hooks/commit-msg index a6777ff9c9..ad4d69a9da 100755 --- a/git-tools/hooks/commit-msg +++ b/git-tools/hooks/commit-msg @@ -55,6 +55,17 @@ quit() fi } +# Check for empty commit message +if ! grep -qv '^#' "$1" +then + # Commit message is empty (or contains only comments). + # Let git handle this. + # It will abort with a message like so: + # + # Aborting commit due to empty commit message. + exit 0 +fi + msg=$(grep -nE '.{81,}' "$1"); if [ $? -eq 0 ] @@ -107,7 +118,19 @@ do case $expect in "header") err=$ERR_HEADER; - echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [A-Z].+$" + echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] .+$" + result=$? + if ! echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [A-Z].+$" + then + # Don't be too strict. + # Commits may be temporary, intended to be squashed later. + # Just issue a warning here. + echo "Warning: heading should be a sentence beginning with a capital letter." 1>&2 + echo "You entered:" 1>&2 + echo "$line" 1>&2 + fi + # restore exit code + (exit $result) ;; "empty") err=$ERR_EMPTY; @@ -128,6 +151,10 @@ do # Should not end up here false ;; + "possibly-eof") + # Allow empty and/or comment lines at the end + ! tail -n +"$i" "$1" |grep -qvE '^($|#)' + ;; "comment") echo "$line" | grep -Eq "^#"; ;; @@ -188,7 +215,7 @@ do in_description=1; ;; "footer") - expecting="footer eof"; + expecting="footer possibly-eof"; if [ "$tickets" = "" ] then tickets="$line"; @@ -199,6 +226,9 @@ do "comment") # Comments should expect the same thing again ;; + "possibly-eof") + expecting="eof"; + ;; *) echo "Unrecognised token $expect" >&2; quit 254; |