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

2 messages from 2005-05-09 to 2005-05-12. Participants: Marcel Holtmann, Petr Baudis.
Thread: https://gitlist.dev/t/542

## Marcel Holtmann, 2005-05-09 00:49

Subject: [PATCH Cogito] Add -u option to cg-log to show only commits from a specific user
Message-ID: <1115599773.8949.90.camel@pegasus>
URL: https://gitlist.dev/e/1115599773.8949.90.camel%40pegasus

```
Hi Petr,

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

This patch also changes the option parsing, because otherwise we are
stuck to a specific order.

Regards

Marcel



cg-log: needs update
Index: cg-log
===================================================================
--- 00b94eea5b99d5dd1d1bbe9c9ca3502d11aec581/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.
@@ -27,29 +30,39 @@
 # at least somewhere it does. Bash is broken.
 trap exit SIGPIPE
 
-if [ "$1" = "-c" ]; then
-	shift
-	# See terminfo(5), "Color Handling"
-	colheader="$(tput setaf 2)"    # Green
-	colauthor="$(tput setaf 6)"    # Cyan
-	colcommitter="$(tput setaf 5)" # Magenta
-	colfiles="$(tput setaf 4)"     # Blue
-	colsignoff="$(tput setaf 3)"   # Yellow
-	coldefault="$(tput op)"        # Restore default
-else
-	colheader=
-	colauthor=
-	colcommitter=
-	colfiles=
-	colsignoff=
-	coldefault=
-fi
-
+colheader=
+colauthor=
+colcommitter=
+colfiles=
+colsignoff=
+coldefault=
 list_files=
-if [ "$1" = "-f" ]; then
-	shift
-	list_files=1
-fi
+user=
+while [ "$1" ]; do
+	case "$1" in
+	-c)
+		# See terminfo(5), "Color Handling"
+		colheader="$(tput setaf 2)"    # Green
+		colauthor="$(tput setaf 6)"    # Cyan
+		colcommitter="$(tput setaf 5)" # Magenta
+		colfiles="$(tput setaf 4)"     # Blue
+		colsignoff="$(tput setaf 3)"   # Yellow
+		coldefault="$(tput op)"        # Restore default
+		shift
+		;;
+	-f)
+		list_files=1
+		shift
+		;;
+	-u*)
+		user="${1#-u}"
+		shift
+		;;
+	*)
+		break
+		;;
+	esac
+done
 
 list_commit_files()
 {
@@ -109,6 +122,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

```

## Petr Baudis, 2005-05-12 20:23

Subject: Re: [PATCH Cogito] Add -u option to cg-log to show only commits from a specific user
Message-ID: <20050512202329.GM324@pasky.ji.cz>
URL: https://gitlist.dev/e/20050512202329.GM324%40pasky.ji.cz
In-Reply-To: <1115599773.8949.90.camel@pegasus>

```
Dear diary, on Mon, May 09, 2005 at 02:49:33AM CEST, I got a letter
where Marcel Holtmann <marcel@holtmann.org> told me that...
> Hi Petr,

Hi,

> the attached patch introduces the -u option for cg-log. Now you can give
> a username or a part of a username and only commits with a matching
> author or committer will be displayed.
> 
> This patch also changes the option parsing, because otherwise we are
> stuck to a specific order.

I think that one should be in a separate patch.

At any rate, could you please resend the patch(es) signed off?

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor

```
