From: Simon Ruderich Date: Wed, 18 Feb 2009 19:33:09 +0000 (+0100) Subject: Add status method to sync.sh. X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;h=4240ee37be2576a533b02b1c640e1e42f2788e27;p=config%2Fdotfiles.git Add status method to sync.sh. This displays commits not on master for each git repository. --- 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