#!/bin/sh
-# Fetches the current master from all remotes. Used to sync with all remote
-# hosts. No merging is done.
+# Syncs with remote hosts in the git (sub)directories.
+#
+# Allows fetching (no merge) and pushing at the moment.
-# Fetch from each remote of each git subdirectory.
+# Select the method, fetch and push 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
+else
+ echo "Usage: sync.sh [fetch | fe | push | pu ]"
+ echo
+ echo "fetch: Fetch from all remotes."
+ echo "psuh: Push to all remotes."
+ exit 1
+fi
+
+# Fetch from/Push to each remote of each git subdirectory.
for project in `find . -name .git -type d`; do
if [ -d "$project" ]; then
pwd=`pwd`
cd "$project"
- # Fetch from all remotes.
+ # Fetch from/Push to all remotes.
for remote in `git remote`; do
- echo "$project: fetching $remote ..."
- git fetch "$remote"
+ echo "$project: ${method}ing $remote ..."
+ git $method "$remote"
done
cd "$pwd"