From: Simon Ruderich Date: Sun, 1 Mar 2009 15:36:46 +0000 (+0100) Subject: sync.sh: Status also displays unpushed commits. X-Git-Url: https://ruderich.org/simon/gitweb/?p=config%2Fdotfiles.git;a=commitdiff_plain;h=86090f20bd601d1c66bc05c13b13da9a546fac80 sync.sh: Status also displays unpushed commits. --- diff --git a/sync.sh b/sync.sh index a3f9eaf..95b3c4a 100755 --- a/sync.sh +++ b/sync.sh @@ -29,13 +29,28 @@ for project in `find . -name .git -type d`; do # Remove .git from repository name. project=`echo "$project" | sed "s|.git||"` - # Display all commits not in the master branch. + # Display all commits not in the master branch (which have to be merged + # from the remote branches) or not in the remote branches (which have to + # be pushed to the remote hosts). if [ $method = status ]; then - output=`git log --graph --all --pretty=oneline --color master..` - if [ "x$output" != x ]; then - echo "$project status:" - echo "$output" - fi + # Display a log similar to gitk but for the console. + function git_log() { + output=`git log --graph --all --pretty=oneline --color $1` + if [ "x$output" != x ]; then + echo $2 + echo "$output" + fi + } + + # Display unmerged commits. + git_log master.. "$project needs merge:" + + # Display not pushed commits. + for branch in `git branch -r`; do + branch=`echo "$branch" | sed 's|* ||g'` + git_log "$branch.." "$project ($branch) needs push:" + done + # Fetch from/Push to all remotes. else for remote in `git remote`; do