ACK: [PATCH] stable-lint: checks a stable queue for common discrepancies

Luis Henriques luis.henriques at canonical.com
Fri Aug 16 16:27:24 UTC 2013


Kamal Mostafa <kamal at canonical.com> writes:

> Signed-off-by: Kamal Mostafa <kamal at canonical.com>
> ---
>  stable/stable-lint | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 70 insertions(+)
>  create mode 100755 stable/stable-lint
>
> diff --git a/stable/stable-lint b/stable/stable-lint
> new file mode 100755
> index 0000000..267271b
> --- /dev/null
> +++ b/stable/stable-lint
> @@ -0,0 +1,70 @@
> +#!/bin/bash
> +#
> +# stable-lint
> +# checks a stable queue (git branch) for some common discrepancies
> +#
> +
> +function usage
> +{
> +	echo "usage: stable-lint [ commit..range ]      (default range is since last tag)" 1>&2
> +	exit 1
> +}
> +
> +if [ $# -gt 1 ]
> +then
> +	usage
> +elif [ $# -eq 1 ]
> +then
> +	[ "${1:0:1}" = "-" ] && usage
> +	range="$1"
> +else
> +	latest_tag="$(git describe --abbrev=0)"
> +	range="$latest_tag..HEAD"
> +fi
> +
> +############################################################
> +
> +function check_commit_upstream_label # sha commitlog
> +{
> +	grep -q '^commit [[:xdigit:]]\{40\} upstream' $2 && return 0
> +	grep -q 'Upstream commit [[:xdigit:]]\{40\}' $2 && return 0
> +	# ignore the "Linux w.x.y.z" release commits
> +	head -1 $2 | grep -q '^Linux [0-9].*' && return 0
> +	echo "W: $1 missing: commit {mainline_sha} upstream."
> +	return 1
> +}
> +
> +function check_no_cc_stable # sha commitlog
> +{
> +	ccstable="$(grep -i '^cc:[[:space:]]*<*stable@' $2)"
> +	[ -z "$ccstable" ] || {
> +		echo "W: $1 should-strip: $ccstable"
> +		return 1
> +	}
> +	return 0
> +}
> +
> +set -e
> +sob="Signed-off-by: $(git config user.name) <$(git config user.email)>"
> +set +e
> +function check_signed_off_by # sha commitlog
> +{
> +	grep -q "$sob" $2 && return 0
> +	echo "W: $1 missing: $sob"
> +	return 1
> +}
> +
> +############################################################
> +
> +COMMITLOG=$(mktemp)
> +trap "rm -f $COMMITLOG" 0
> +
> +git log --pretty=%h "$range" | while read SHA
> +do
> +	git log -1 --pretty=%B $SHA > $COMMITLOG
> +
> +	check_commit_upstream_label	$SHA $COMMITLOG
> +	check_signed_off_by		$SHA $COMMITLOG
> +	check_no_cc_stable		$SHA $COMMITLOG
> +done
> +
> -- 
> 1.8.1.2

Quite useful script!  Already found some issues with a few stable
commits with it.

Cheers,
-- 
Luis




More information about the kernel-team mailing list