diff --git a/contrib/git-add-vendor-branch.sh b/contrib/git-add-vendor-branch.sh new file mode 100755 index 00000000000..04d39ed6b63 --- /dev/null +++ b/contrib/git-add-vendor-branch.sh @@ -0,0 +1,43 @@ +#! /bin/sh -xve + +# Create a new upstream vendor branch. + +# Usage: +# contrib/git-add-vendor-branch.sh / + +usage () +{ + echo "Usage:" + echo " $0 / " + echo + echo " must have already been set up using contrib/git-fetch-vendor.sh" + exit 1 +} + +if [ $# != 2 ] +then + usage +fi + +vendor=$(echo "$1" | sed -r "s:([^/]*)/.*$:\1:") +branch=$(echo "$1" | sed -r "s:[^/]*/(.*)$:\1:") +start=$2 + +if [ -z "$vendor" -o -z "$branch" ] +then + usage +fi + +# Check that we know about the vendor +url=$(git config --get "remote.vendors/${vendor}.url"||true) +if [ -z "$url" ] +then + echo "Cannot locate remote data for vendor ${vendor}. Have you set it up?" + exit 1 +fi + +git branch --no-track ${vendor}/${branch} ${start} +git push vendors/${vendor} ${vendor}/${branch}:refs/vendors/${vendor}/heads/${branch} +git fetch -q vendors/${vendor} +git branch --set-upstream-to=remotes/vendors/${vendor}/${branch} ${vendor}/$branch +echo "Now ready to check out ${vendor}/${branch}"