123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #!/bin/sh
- usage ()
- {
- echo "Usage: $0 [--enable-push] <vendor>"
- echo "The following vendors are already known:"
- git ls-remote ${upstream} "*/vendors/*" | sed -r "s:.*/vendors/([^/]+)/.*:\1:"|sort|uniq
- exit 1
- }
- # Should we insert a "push" refspec to enable pushing to the vendor branch?
- enable_push=no
- upstream=`git config --get "gcc-config.upstream"`
- if [ x"$upstream" = x ]
- then
- echo "Config gcc-config.upstream not set, run contrib/gcc-git-customization"
- exit 1
- fi
- case $# in
- 1)
- # vendor names never start with -, so catch this in case user wrote something like --help.
- case "$1" in
- -*)
- usage
- ;;
- *)
- vendor=$1
- ;;
- esac
- ;;
- 2)
- vendor=$2
- if [ "$1" = "--enable-push" ]
- then
- enable_push=yes
- else
- usage
- fi
- ;;
- *)
- usage
- ;;
- esac
- echo "setting up git to fetch vendor ${vendor} to remotes/vendors/${vendor}"
- url=$(git config --get "remote.${upstream}.url")
- pushurl=$(git config --get "remote.${upstream}.pushurl")
- git config "remote.vendors/${vendor}.url" "${url}"
- if [ "x$pushurl" != "x" ]
- then
- git config "remote.vendors/${vendor}.pushurl" "${pushurl}"
- fi
- git config --replace-all "remote.vendors/${vendor}.fetch" "+refs/vendors/${vendor}/heads/*:refs/remotes/vendors/${vendor}/*" "refs/vendors/${vendor}/heads"
- git config --replace-all "remote.vendors/${vendor}.fetch" "+refs/vendors/${vendor}/tags/*:refs/tags/vendors/${vendor}/*" "refs/vendors/${vendor}/tags"
- if [ "$enable_push" = "yes" ]
- then
- echo "Warning: take care when pushing that you only push the changes you intend."
- echo "E.g. use \"git push vendors/${vendor} HEAD\" to push the current branch"
- git config --replace-all "remote.vendors/${vendor}.push" "refs/heads/${vendor}/*:refs/vendors/${vendor}/heads/*"
- else
- git config --unset-all "remote.vendors/${vendor}.push"
- fi
- git fetch vendors/${vendor}
|