aboutsummaryrefslogtreecommitdiff
path: root/helpers/git-push
blob: 2869dcf7a6ed84bed0a28ad439b87b4b135e92d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/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