Use the exact formatting suggested in COPYING file. This change is basically a pretext to trigger a new clean build in order to check if Coverity is capable of accepting new builds for analysis finally.
63 lines
2 KiB
Bash
Executable file
63 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Copyright (C) 2019-2020 Patryk Obara <patryk.obara@gmail.com>
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
# git-rlog.sh - Show git log decorated with SVN revisions
|
|
#
|
|
# Usage: git-rlog.sh [<options>] [<revision range>] [[--] <path>…]
|
|
#
|
|
# Example: $ git-rlog.sh origin/svn/trunk
|
|
#
|
|
# Accepts the same options as git-log (see: git-log(1) for details).
|
|
# Revision range are documented in man page: gitrevisions(7).
|
|
#
|
|
# You can either use this script directly or add it to your git aliases in
|
|
# ~/.gitconfig or .git/config:
|
|
#
|
|
# [alias]
|
|
# rlog = !$(git rev-parse --show-toplevel)/scripts/git-rlog.sh
|
|
#
|
|
# With alias configured, you will be able to invoke it as other git commands:
|
|
#
|
|
# $ git rlog
|
|
#
|
|
# You can read more about aliases in the manual: git-config(1)
|
|
|
|
max () {
|
|
local -r x=$1
|
|
local -r y=$2
|
|
((x > y)) && echo "$x" || echo "$y"
|
|
}
|
|
|
|
# This is a simple invocation of git-log with a very specific message
|
|
# formatting used. Formatting of log messages is explained in detail
|
|
# in the manual page: git-log(1), section "PRETTY FORMATS".
|
|
#
|
|
git_log () {
|
|
read -r _ term_cols < <(stty size)
|
|
local -r cols_available_for_msg_subject=$((term_cols - 54))
|
|
local -r s=$(max 25 $cols_available_for_msg_subject)
|
|
local -r fmt="%h %cd %<(20,trunc)%cn [[%(trailers)%-]] %<($s,trunc)%s"
|
|
git log --date="format:%Y-%m-%d %H:%M" --format="$fmt" "$@"
|
|
}
|
|
|
|
# This terrible sed expression rips out SVN revision out of SVN path
|
|
# and ignores trailers other than "Imported-from". This expression depends
|
|
# on trailer being surrounded with "[[" and "]]" markers.
|
|
#
|
|
sed_trailer () {
|
|
sed 's/\[\[\(Imported-from: .*@\([0-9]\+\)\|.*\)\]\]/[\2]/'
|
|
# ~~~~ ~~ ~~~~~~~ ~~~~
|
|
# ↑ ↑ ↑ ↑
|
|
# "[[" path revision "]]"
|
|
}
|
|
|
|
# main function; piece it together and pass to the pager, keeping behaviour
|
|
# of the default Git pager (sans all user overrides possible).
|
|
#
|
|
main () {
|
|
git_log "$@" | sed_trailer | LESS=FRX less -S
|
|
}
|
|
|
|
main "$@"
|