#!/bin/sh
# Run git-update.sh for all git repositories in this directory.
+#
+# All arguments are passed to git-update.sh.
-find . -name .git -type d -exec git-update.sh {} \; | less
+find . -name .git -type d -exec git-update.sh "$@" {} \; | less
# Push current commits to all remotes and fetch from all remotes. Then display
# unmerged commits and changes in the repositories.
#
+# If --local is given as option, no fetching/pushing is performed.
+#
# If an argument is given cd to this directory before running the commands.
#
# Very useful to sync multiple remotes.
+LOCAL=
+if [ x$1 = x--local ];then
+ LOCAL=1
+ shift
+fi
+
if [ x$1 != x ]; then
echo $1
cd "$1"
fi
-# Get all remote changes.
-git remote update 2>&1 | grep -v Fetching
-# Push all local changes to remote(s).
-for remote in `git remote`; do
- git push $remote 2>&1 | grep -v 'Everything up-to-date'
- git push --tags $remote 2>&1 | grep -v 'Everything up-to-date'
-done
+if [ x$LOCAL = x ]; then
+ # Get all remote changes.
+ git remote update 2>&1 | grep -v Fetching
+ # Push all local changes to remote(s).
+ for remote in `git remote`; do
+ git push $remote 2>&1 | grep -v 'Everything up-to-date'
+ git push --tags $remote 2>&1 | grep -v 'Everything up-to-date'
+ done
+fi
# Show unmerged changes.
git branch -rv --color --no-merged
# Show uncommitted changes.
export LESS_TERMCAP_ue=$'\e[0m'
+# Setup lesspipe to view multiple file-types (like .gz, .zip, etc.) with less.
+# Useful in combination with the "p" alias. Taken from Debian's default bash
+# files. Thanks.
+[[ -x /usr/bin/lesspipe ]] && eval "$(SHELL=/bin/sh lesspipe)"
+
+
source_config ~/.zsh/env.local
source_debug ". ~/.zsh/env (done)"