X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=sync.sh;h=95b3c4a925b0a2b4ac6bcede643c9be0f2a5bfc9;hb=86090f20bd601d1c66bc05c13b13da9a546fac80;hp=a3f9eaf124ffc324b942582a7e30ff2736fddcb2;hpb=ec22bd63fe3e0d9b36918023bfe5b90a25bef3db;p=config%2Fdotfiles.git 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