| #!/bin/bash | 
 | # Barret Rhoden (brho@cs.berkeley.edu) | 
 | # Copyright 2016 Google Inc | 
 | # | 
 | # Tracks a branch in a remote repo. | 
 | # | 
 | # If the remote is already set up, then you only need to pass it remote/branch. | 
 | # If the remote is new, you will need to pass the URL for the repo. | 
 |  | 
 |  | 
 | usage() | 
 | { | 
 | 	echo "$0 <remote>/<branch> [<url>]" | 
 | 	exit -1 | 
 | } | 
 |  | 
 | if [ $# -lt 1 ] | 
 | then | 
 | 	usage | 
 | fi | 
 |  | 
 | REMOTE=`echo $1 | cut -f 1 -d '/'` | 
 | BRANCH=`echo $1 | cut -f 2- -d '/'` | 
 |  | 
 | git remote | grep $REMOTE > /dev/null | 
 | if [ $? -ne 0 ] | 
 | then | 
 | 	if [ $# -ne 2 ] | 
 | 	then | 
 | 		echo "Remote $REMOTE not tracked yet and no URL passed" | 
 | 		echo "	Try again with the repo's URL or add the remote manually" | 
 | 		usage | 
 | 	fi | 
 | 	URL=$2 | 
 | 	git remote add -t $BRANCH $REMOTE $URL | 
 | else | 
 | 	git remote set-branches --add $REMOTE $BRANCH | 
 | fi | 
 |  | 
 | git fetch -n $REMOTE $BRANCH |