`sync.sh` or `sync.sh fetch` fetches, `sync.sh push` pushes to all remotes.
# hosts. No merging is done.
# hosts. No merging is done.
-# Fetch from each remote of each git subdirectory.
+# Select the method, fetch and push is possible.
+if [ x$1 = x -o x$1 = xfetch ]; then
+ method=fetch
+elif [ x$1 = xpush ]; then
+ method=push
+else
+ echo "Unsupported method '$1'. Only 'fetch' and 'push' is supported." >&2
+ 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"
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
for remote in `git remote`; do
- echo "$project: fetching $remote ..."
- git fetch "$remote"
+ echo "$project: ${method}ing $remote ..."
+ git $method "$remote"