git-grepall.sh: Add a script for grepping all local branches
authorW. Trevor King <wking@tremily.us>
Thu, 21 Mar 2013 19:34:53 +0000 (15:34 -0400)
committerW. Trevor King <wking@tremily.us>
Thu, 21 Mar 2013 19:36:50 +0000 (15:36 -0400)
Sometimes I have a lot of branches (e.g. per-assignment branches for a
single class, to support sharing work between assignments), and I
forget which feature is in which branch.  Now I can run:

  $ git-grepall.sh PATTERN

to search all the local branches.

posts/Git/git-grepall.sh [new file with mode: 0755]

diff --git a/posts/Git/git-grepall.sh b/posts/Git/git-grepall.sh
new file mode 100755 (executable)
index 0000000..2038946
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# Copyright (C) 2013 W. Trevor King <wking@drexel.edu>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program.  If not, see
+# <http://www.gnu.org/licenses/>.
+
+
+PATTERN="$1"
+shift
+for BRANCH in $(git branch --no-color --no-column | grep -v '\*'); do
+       git --no-pager grep "$PATTERN" "$BRANCH" -- "$@"
+done