]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
Add status method to sync.sh.
authorSimon Ruderich <simon@ruderich.org>
Wed, 18 Feb 2009 19:33:09 +0000 (20:33 +0100)
committerSimon Ruderich <simon@ruderich.org>
Wed, 18 Feb 2009 19:33:09 +0000 (20:33 +0100)
This displays commits not on master for each git repository.

sync.sh

diff --git a/sync.sh b/sync.sh
index 6477d0d9a01c39778a7da9042654baf9a25980d2..7ffcd44f652c435882b796e63f86932b66233399 100755 (executable)
--- a/sync.sh
+++ b/sync.sh
@@ -5,29 +5,38 @@
 # Allows fetching (no merge) and pushing at the moment.
 
 
-# Select the method, fetch and push is possible.
+# Select the method: fetch, push and status is possible.
 if [ x$1 = x -o x$1 = xfetch -o x$1 = xfe ]; then
     method=fetch
 elif [ $1 = push -o $1 = pu ]; then
     method=push
+elif [ $1 = status -o $1 = st ]; then
+    method=status
 else
-    echo "Usage: sync.sh [fetch | fe | push | pu ]"
+    echo "Usage: sync.sh [fetch | fe | push | pu | status | st]"
     echo
     echo "fetch: Fetch from all remotes."
     echo "push: Push to all remotes."
+    echo "status: Display status for all git repositories."
     exit 1
 fi
 
-# Fetch from/Push to each remote of each git subdirectory.
+# Execute the given method for each git subdirectory.
 for project in `find . -name .git -type d`; do
     pwd=`pwd`
     cd "$project"
 
+    # Display all commits not in the master branch.
+    if [ $method = status ]; then
+        echo "$project status"
+        git log --graph --all --pretty=oneline master..
     # Fetch from/Push to all remotes.
-    for remote in `git remote`; do
-        echo "$project: ${method}ing $remote ..."
-        git $method "$remote"
-    done
+    else
+        for remote in `git remote`; do
+            echo "$project: ${method}ing $remote ..."
+            git $method "$remote"
+        done
+    fi
 
     cd "$pwd"
 done