X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=bin%2Fgit-update.sh;h=7ec186b28b3a60d07edbab6074abdbe6d6e651c9;hb=25a08d633cffde3db73220f8de8cdc1ff6188ff1;hp=e9c0abad5b79e4e983d862b58e0fdd29b493f7e2;hpb=be2c42a1aedc84e0e510b8b0296bcebc587a4816;p=config%2Fdotfiles.git diff --git a/bin/git-update.sh b/bin/git-update.sh index e9c0aba..7ec186b 100755 --- a/bin/git-update.sh +++ b/bin/git-update.sh @@ -3,23 +3,48 @@ # 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. +# Copyright (C) 2011-2012 Simon Ruderich +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +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.