From: Jonas Fonseca Date: Sat, 04 Jun 2005 14:42:42 GMT Subject: [PATCH 8/10] Move the username matching inside the loop Message-ID: <20050604144242.GL12615@diku.dk> In-Reply-To: <20050604143831.GD12615@diku.dk> By handling -u in the commit parsing loop no extra git-cat-file call is necessary. Keep the line-based matching scheme so that it is still possible to restrict searches by using prefixing the search string with either 'author' or 'committer' (e.g. -u'author.*miciah'). This change also magically removes trailing empty lines from commit logs. Signed-off-by: Jonas Fonseca --- cg-log | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cg-log b/cg-log --- a/cg-log +++ b/cg-log @@ -184,6 +184,10 @@ print_commit_log() { parents[${#parents[@]}]="$rest" ;; "") + if [ "$user" ]; then + echo -e "author $author\ncommitter $committer" \ + | grep -qi "$user" || return + fi echo ${colheader}commit ${commit%:*} $coldefault echo ${colheader}tree $tree $coldefault @@ -223,9 +227,9 @@ $revls | $revsort | while read time comm [ "$parent" ] || diff_ops=--root [ "$(git-diff-tree -r $diff_ops $commit $parent "$@")" ] || continue fi - if [ "$user" ]; then - git-cat-file commit $commit | grep -e '^author ' -e '^committer ' | grep -qi "$user" || continue + log="$(print_commit_log $commit)" + if [ "$log" ]; then + echo "$log" + echo fi - print_commit_log $commit - echo done | pager -- Jonas Fonseca