Subject: [PATCH Cogito] Add -u option to cg-log to show only commits from a specific user

From: Marcel Holtmann <[email-masked]>
Date: Thu, 12 May 2005 23:58:45 +0200

Hi Petr,

the attached patch introduces the -u option for cg-log. Now you can give
a username or a part of an username and only commits with a matching
author or committer will be displayed. Based on a patch from Sean.

Regards

Marcel

Signed-off-by: Marcel Holtmann <[email-masked]>

Index: cg-log
===================================================================
--- 7fa81b554162c34c616e74392960939412d18081/cg-log  (mode:100755)
+++ uncommitted/cg-log  (mode:100755)
@@ -15,6 +15,9 @@
 #
 # Takes an -f option to list which files was changed.
 #
+# Takes -u"username" to list only commits where author or
+# committer contains username.
+#
 # Takes an -r followed with id resolving to a commit to start from
 # (HEAD by default), or id1:id2 representing an (id1;id2] range
 # of commits to show.
@@ -34,6 +37,7 @@
 colsignoff=
 coldefault=
 list_files=
+user=
 while [ "$1" ]; do
 	# TODO: Parse -r here too.
 	case "$1" in
@@ -51,6 +55,10 @@
 		list_files=1
 		shift
 		;;
+	-u*)
+		user="${1#-u}"
+		shift
+		;;
 	*)
 		break
 		;;
@@ -123,6 +131,9 @@
 		parent=$(git-cat-file commit $commit | sed -n '2s/parent //p;2Q')
 		[ "$parent" ] && [ "$(git-diff-tree -r $commit $parent "$@")" ] || continue
 	fi
+	if [ "$user" ]; then
+		git-cat-file commit $commit | grep -e '^author ' -e '^committer ' | grep -qi "$user" || continue
+	fi
 	echo $colheader""commit ${commit%:*} $coldefault;
 	git-cat-file commit $commit | \
 		while read key rest; do