xref: /netbsd-src/external/gpl3/gcc/dist/contrib/git-add-vendor-branch.sh (revision fb8a8121f28072308659629b86cfb7c449bd93e1)
1*fb8a8121Smrg#! /bin/sh -e
2*fb8a8121Smrg
3*fb8a8121Smrg# Create a new upstream vendor branch.
4*fb8a8121Smrg
5*fb8a8121Smrg# Usage:
6*fb8a8121Smrg#  contrib/git-add-vendor-branch.sh <vendor>/<branch-name> <base>
7*fb8a8121Smrg
8*fb8a8121Smrgusage ()
9*fb8a8121Smrg{
10*fb8a8121Smrg    echo "Usage:"
11*fb8a8121Smrg    echo "  $0 <vendor>/<branch-name> <start-point>"
12*fb8a8121Smrg    echo
13*fb8a8121Smrg    echo "<vendor> must have already been set up using contrib/git-fetch-vendor.sh"
14*fb8a8121Smrg    exit 1
15*fb8a8121Smrg}
16*fb8a8121Smrg
17*fb8a8121Smrgif [ $# != 2 ]
18*fb8a8121Smrgthen
19*fb8a8121Smrg    usage
20*fb8a8121Smrgfi
21*fb8a8121Smrg
22*fb8a8121Smrgvendor=$(echo "$1" | sed -r "s:([^/]*)/.*$:\1:")
23*fb8a8121Smrgbranch=$(echo "$1" | sed -r "s:[^/]*/(.*)$:\1:")
24*fb8a8121Smrgstart=$2
25*fb8a8121Smrg
26*fb8a8121Smrg# Sanity check the new branch argument.  If there is no '/', then the
27*fb8a8121Smrg# vendor will be the same as the entire first argument.
28*fb8a8121Smrgif [ -z "$vendor" -o -z "$branch" -o ${vendor} = $1 ]
29*fb8a8121Smrgthen
30*fb8a8121Smrg    usage
31*fb8a8121Smrgfi
32*fb8a8121Smrg
33*fb8a8121Smrg# Check that we know about the vendor
34*fb8a8121Smrgurl=$(git config --get "remote.vendors/${vendor}.url"||true)
35*fb8a8121Smrgif [ -z "$url" ]
36*fb8a8121Smrgthen
37*fb8a8121Smrg    echo "Cannot locate remote data for vendor ${vendor}.  Have you set it up?"
38*fb8a8121Smrg    exit 1
39*fb8a8121Smrgfi
40*fb8a8121Smrg
41*fb8a8121Smrggit branch --no-track ${vendor}/${branch} ${start}
42*fb8a8121Smrggit push vendors/${vendor} ${vendor}/${branch}:refs/vendors/${vendor}/heads/${branch}
43*fb8a8121Smrggit fetch -q vendors/${vendor}
44*fb8a8121Smrggit branch --set-upstream-to=remotes/vendors/${vendor}/${branch} ${vendor}/$branch
45*fb8a8121Smrgecho "You are now ready to check out ${vendor}/${branch}"
46*fb8a8121Smrgecho "To push the branch upstream, use:"
47*fb8a8121Smrgecho
48*fb8a8121Smrgecho "git push vendors/${vendor} ${vendor}/${branch}"
49