]>
Tony Duckles's Git Repositories (git.nynim.org) - dotfiles.git/blob - bin/git-incoming
   2 # Usage: git-incoming [-d] [<upstream>] [<head> [<limit>]] 
   3 # Show commits on <upstream> that do not exist on current branch. 
   5 # bail out with message to stderr and exit status 1 
   7     echo "$(basename $0):" "$@" 1>&2 
  12 SHA
=$(git config --get-color 'color.branch.local') 
  13 ADD
=$(git config --get-color 'color.diff.new') 
  14 REM
=$(git config --get-color 'color.diff.old') 
  15 RESET
=$(git config --get-color '' 'reset') 
  17 # check for -d / --diff argument 
  19 if [ "$1" = '-d' -o "$1" = '--diff' ] 
  24 # use tracking branch if no upstream given 
  27     # get the current branch in refs/heads/<branch> form 
  28     ref
=$(git symbolic-ref -q HEAD) 
  30     die 
"you're not on a branch" 
  32     # just the branch name please 
  33     branch
=$(echo "$ref" | sed 's@^refs/heads/@@') 
  35     die 
"you're in a weird place; get on a local branch" 
  37     # grab remote name for current branch 
  38     remote
=$(git config --get "branch.$branch.remote" || true) 
  40     # grab tracked branch name for current branch 
  41     merge
=$(git config branch.$branch.merge) || 
  42     die 
"branch $branch isn't tracking a remote branch and no <upstream> given" 
  45     set -- "$remote/$(echo "$merge" |sed 's@^refs/heads/@@')" 
  49 then git 
diff HEAD...
"$1" 
  50 else git cherry 
-v HEAD 
"$@"                           | 
  52      sed -e "s/^\(.\) \(.......\)/\1 $SHA\2$RESET/"    | 
  53      sed -e "s/^-/$REM-$RESET/" -e "s/^+/$ADD+$RESET/"