From 4240ee37be2576a533b02b1c640e1e42f2788e27 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Wed, 18 Feb 2009 20:33:09 +0100 Subject: [PATCH] Add status method to sync.sh. This displays commits not on master for each git repository. --- sync.sh | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/sync.sh b/sync.sh index 6477d0d..7ffcd44 100755 --- 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 -- 2.44.1