# 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