readonly INNOCUOUS=$(echo \
Acked-by \
Tested-by \
- CC \
Reported-by \
Reviewed-by \
+ CC \
| tr ' ' '|')
readonly WIDTH_SUM=64
readonly WIDTH_REG=70
# Identify a name followed by an email address.
#
- readonly EMAILPAT=$'[ \t]*[a-zA-Z][^<>]*[ \t]<[^@ \t>]+@[^@ \t>]+>'
+ readonly EMAILPAT=$'[ \t]*[^<> ]* [^<>]* <[^@ \t>]+@[a-zA-Z0-9.-]+\.[a-z]+>'
HAS_ERROR=false
HAS_SUMMARY=false
ck_wrapup
# Signed-off-by: First Last <email@host.domain>
local txt=$(echo "${LINE#*: }" | grep -E "${EMAILPAT}")
- if (( ${#txt} == 0 )) ; then
+ if (( ${#txt} == 0 )); then
error "$SIGNOFF line requires name and email address"
else
HAS_SIGNOFF=true # require at least one
# capital "I" plus 40 hex digits
#
local txt=$(echo "$LINE" | grep "^$CHANGEID I[0-9a-fA-F]\{40\}\$")
- (( ${#txt} > 0 )) || \
+ (( ${#txt} > 0 )) ||
error "has invalid $CHANGEID line for Gerrit tracking"
HAS_CHANGEID=true
error "invalid signoff section line"
return
}
- if (( NUM == 1 )) ; then
+ if (( NUM == 1 )); then
HAS_JIRA_COMPONENT=$(echo "$LINE" | grep "$JIRA_FMT_A")
- if (( ${#HAS_JIRA_COMPONENT} == 0 )) ; then
+ if (( ${#HAS_JIRA_COMPONENT} == 0 )); then
HAS_JIRA=$(echo "$LINE" | grep "$JIRA_FMT_B")
- if (( ${#HAS_JIRA} > 0 )) ; then
+ if (( ${#HAS_JIRA} > 0 )); then
error "has no component in summary."
else
error "missing JIRA ticket number."
fi
- elif (( ${#LINE} > WIDTH_SUM )) ; then
+ elif (( ${#LINE} > WIDTH_SUM )); then
error "summary longer than $WIDTH_SUM columns."
else
HAS_SUMMARY=true
fi
- elif (( ${#LINE} > WIDTH_REG )) ; then
+ elif (( ${#LINE} > WIDTH_REG )); then
error "has line longer than $WIDTH_REG columns."
elif ! $HAS_BODY && ! $HAS_LAST_BLANK; then
error "has no blank line after summary."
git rev-parse HEAD 2>/dev/null
grep -v "^$SIGNOFF" "$ORIGINAL" | git stripspace -s
} | git hash-object --stdin)
- (( ${#NEWID} > 0 )) || \
+ (( ${#NEWID} > 0 )) ||
die "git hash-object failed for $CHANGEID:"
echo "$CHANGEID I$NEWID"
$SIGNOFF Your Real Name <your_email@domain.name>
$CHANGEID Ixxxx(added automatically if missing)xxxx
- Included in the "sign off section" may be any of several other
- tag lines:
- $(echo "$INNOCUOUS" | tr '|' ' ')
The "$CHANGEID" line should only be there when updating a previous
- commit/submission. Copy the one from that commit.
+ commit/submission. Copy the one from the original commit.
+
+ The "sign off section" may also include several other tag lines:
+ $(for T in $(tr '|' ' ' <<< "$INNOCUOUS"); do echo " $T: <email>"; done
+ {Organization}-bug-id: associated ticket identifier
EOF
- mv "$ORIGINAL" "$SAVE" && \
+ mv "$ORIGINAL" "$SAVE" &&
echo "$0: saved original commit comment to $SAVE" 1>&2
}
$CHANGEID* ) do_changeid ;;
"")
- $IS_WRAPPING_UP && \
- error "blank lines not allowed in signoff section"
HAS_LAST_BLANK=true
+ $IS_WRAPPING_UP && continue
;;
\#*)
;;
*)
- if [[ "$LINE" =~ ^($INNOCUOUS): ]] ; then
+ if [[ "$LINE" =~ ^($INNOCUOUS): ]]; then
do_innocuous
- else
+ elif [[ "$LINE" =~ ^[A-Za-z0-9_-]+-bug-id: ]]; then
+ ck_wrapup
+ else
+ # Allow arbitrary external bug identifiers for tracking.
+ # I can't seem to find a pattern for the "case" that
+ # checks for "*-bug-id", so this is checked here.
do_default_line
fi
;;
body
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
+Signed-off-by: Andreas Eric Dilger <adilger@dilger.ca>
+Signed-off-by: Andreas Eric Dilger <andreas.dilger@mail.my-domain.za>
+Signed-off-by: Andreas Smyth Esq. III <asmyth_iii@my-domain-3.co.uk>
Change-Id: I0123456789012345678901234567890123456789
-Acked-by: Joe Doaks <Joe.Doaks@sample.com>
-Tested-by: Jane Pain <Jane.Pain@sample.com>
-CC: Your Mother <mom@sample.com>
-Reported-by: Anony Mouse <mickey@sample.com>
-Reviewed-by: Joe Hacker <joey@hacker-industries.com>
+
+# total: 0 errors, 0 warnings, 36 lines checked
+#
+# Your patch has no obvious style problems and is ready for submission.