| #!/usr/bin/env bash |
| |
| # This script pushes the current branch to the origin repository. |
| # As an added bonus, it refreshes the local master branch from |
| # the origin, to make sure your branch is in sync with the master of the |
| # repo you're pushing to. |
| # |
| # Syntax: git-push [branch (default=current)] |
| |
| . llvm-common |
| |
| branch= |
| if [[ $1 != '' ]]; then |
| if [[ `git branch | grep $1` = '' ]]; then |
| echo "Branch '$1' doesn't exist in this repository" |
| exit 2 |
| fi |
| branch=$1 |
| else |
| branch=`get_branch` |
| fi |
| |
| if [[ $branch = 'master' ]]; then |
| echo "Can't push the master branch." |
| echo "Use git-refresh instead." |
| exit 1 |
| fi |
| |
| prefix="linaro-local/" |
| if echo $branch | grep -q linaro-local; then |
| prefix="" |
| fi |
| |
| echo " ++ Refresh Master from Upstream" |
| safe_run git-refresh |
| |
| echo " ++ Rebase to new master" |
| safe_run git checkout $branch |
| safe_run git rebase master |
| |
| echo " ++ Push $branch to Origin" |
| safe_run git push -u origin +$branch:$prefix$branch |