Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F147045819
D36203.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D36203.diff
View Options
diff --git a/.hooks/prepare-commit-msg b/.hooks/prepare-commit-msg
new file mode 100755
--- /dev/null
+++ b/.hooks/prepare-commit-msg
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# prepare-commit-msg: Prepare a commit message upon `git commit` for the
+# user to edit. A script (rather than a static template) is used, so
+# that we can insert our template text other than at the top of the
+# message.
+#
+# Install by either setting the configuration of the repository to:
+# git config --add core.hooksPath .hooks
+# or copy it to the hooks directory, but it will not get automatically updated:
+# cp .hooks/prepare-commit-msg .git/hooks/
+
+case "$2" in
+commit|message)
+ # It appears git invokes this script for interactive rebase but does
+ # not remove commented lines, so just exit if we're not called with the
+ # default (comment-containing) template.
+ grep -E -q '^#' "$1" || exit 0
+ ;;
+template)
+ exit 0
+ ;;
+merge)
+ exit 0
+ ;;
+esac
+
+outfile=$(mktemp /tmp/freebsd-git-commit.XXXXXXXX)
+exec 3> "$outfile"
+
+# Create a commit message template from three parts:
+#
+# 1. The beginning of the git-provided template (up to the first comment-only
+# line) which explains commented lines and such.
+#
+# 2. Our template.
+#
+# 3. The remainder of the git-provided template (from the first comment-only
+# line to the end of the file) which lists files staged for commit, files
+# not staged, and untracked files.
+
+awk '1;/^#$/{exit}' "$1" >&3
+
+cat >&3 <<EOF
+# <Component>: Subject goes here, max 50 cols --|
+# <then a blank line>
+# 72 columns --|
+#
+# Do not add a "Submitted by:" line. If someone besides the committer sent in
+# the change, the commit author should be set using \`git commit --author\`.
+#
+# Uncomment and complete these metadata fields, as appropriate:
+#
+# PR: <If and which Problem Report is related.>
+# Reported by: <If someone else reported the issue.>
+# Reviewed by: <If someone else reviewed your modification.>
+# Tested by: <If someone else tested the change.>
+# Approved by: <If you needed approval for this commit.>
+# Obtained from: <If the change is from a third party.>
+# Fixes: <Short hash and title line of commit fixed by this change>
+# Relnotes: <Set to 'yes' for mention in release notes.>
+# Security: <Vulnerability reference (one per line) or description.>
+# Sponsored by: <If the change was sponsored by an organization.>
+# Pull Request: <https://github.com/freebsd/freebsd-doc/pull/###>
+# Differential Revision: <https://reviews.freebsd.org/D###>
+#
+# "Pull Request" and "Differential Revision" require the *full* GitHub or
+# Phabricator URL.
+EOF
+
+awk '/^#$/,EOF' "$1" >&3
+
+exec 3>&-
+
+mv "$outfile" "$1"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Mar 8, 9:20 PM (18 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29418046
Default Alt Text
D36203.diff (2 KB)
Attached To
Mode
D36203: Add the prepare-commit-msg hook to the repository
Attached
Detach File
Event Timeline
Log In to Comment