| #!/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 $REMOTE |