aboutsummaryrefslogtreecommitdiff
path: root/scripts/git-log-pretty-since.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/git-log-pretty-since.sh')
-rwxr-xr-xscripts/git-log-pretty-since.sh28
1 files changed, 24 insertions, 4 deletions
diff --git a/scripts/git-log-pretty-since.sh b/scripts/git-log-pretty-since.sh
index d8e3282fb3..a0aa4354b6 100755
--- a/scripts/git-log-pretty-since.sh
+++ b/scripts/git-log-pretty-since.sh
@@ -1,6 +1,8 @@
#!/usr/bin/env bash
-# Shows a log with changes grouped next to their merge-commit.
+# Prints a nicely-formatted commit history.
+# - Commits are grouped below their merge-commit.
+# - Issue numbers are moved next to the commit-id.
#
# Parameters:
# $1 "since" commit
@@ -19,14 +21,32 @@ is_merge_commit() {
git log $1^2 >/dev/null 2>&1 && return 0 || return 1
}
-for commit in $(git log --format='%H' --first-parent --since $__SINCE); do
+# Removes parens from issue/ticket/PR numbers.
+#
+# Example:
+# in: 3340e08becbf foo (#9423)
+# out: 3340e08becbf foo #9423
+_deparen() {
+ sed 's/(\(\#[0-9]\{3,\}\))/\1/g'
+}
+
+# Cleans up issue/ticket/PR numbers in the commit descriptions.
+#
+# Example:
+# in: 3340e08becbf foo (#9423)
+# out: 3340e08becbf #9423 foo
+_format_ticketnums() {
+ nvim -Es +'g/\v(#[0-9]{3,})/norm! ngEldE0ep' +'%p' | _deparen
+}
+
+for commit in $(git log --format='%H' --first-parent "$__SINCE"..HEAD); do
if is_merge_commit ${commit} ; then
if [ -z "$__INVMATCH" ] || ! git log --oneline ${commit}^1..${commit}^2 \
- | grep -E "$__INVMATCH" >/dev/null 2>&1 ; then
+ | >/dev/null 2>&1 grep -E "$__INVMATCH" ; then
git log -1 --oneline ${commit}
git log --format=' %h %s' ${commit}^1..${commit}^2
fi
else
git log -1 --oneline ${commit}
fi
-done
+done | _format_ticketnums