annotate contrib/git-fetch-vendor.sh @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 #!/bin/sh
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 usage ()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 echo "Usage: $0 [--enable-push] <vendor>"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 echo "The following vendors are already known:"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 git ls-remote ${upstream} "*/vendors/*" | sed -r "s:.*/vendors/([^/]+)/.*:\1:"|sort|uniq
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 exit 1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 # Should we insert a "push" refspec to enable pushing to the vendor branch?
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 enable_push=no
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 upstream=`git config --get "gcc-config.upstream"`
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 if [ x"$upstream" = x ]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 then
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 echo "Config gcc-config.upstream not set, run contrib/gcc-git-customization"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 exit 1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 fi
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 case $# in
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 1)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 # vendor names never start with -, so catch this in case user wrote something like --help.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 case "$1" in
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 -*)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 usage
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 ;;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28 *)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 vendor=$1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 ;;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 esac
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 ;;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 2)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34 vendor=$2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 if [ "$1" = "--enable-push" ]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 then
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37 enable_push=yes
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 else
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 usage
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 fi
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 ;;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 *)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 usage
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44 ;;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 esac
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48 echo "setting up git to fetch vendor ${vendor} to remotes/vendors/${vendor}"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49 url=$(git config --get "remote.${upstream}.url")
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50 pushurl=$(git config --get "remote.${upstream}.pushurl")
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51 git config "remote.vendors/${vendor}.url" "${url}"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 if [ "x$pushurl" != "x" ]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 then
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 git config "remote.vendors/${vendor}.pushurl" "${pushurl}"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55 fi
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 git config --replace-all "remote.vendors/${vendor}.fetch" "+refs/vendors/${vendor}/heads/*:refs/remotes/vendors/${vendor}/*" "refs/vendors/${vendor}/heads"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57 git config --replace-all "remote.vendors/${vendor}.fetch" "+refs/vendors/${vendor}/tags/*:refs/tags/vendors/${vendor}/*" "refs/vendors/${vendor}/tags"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58 if [ "$enable_push" = "yes" ]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 then
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60 echo "Warning: take care when pushing that you only push the changes you intend."
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 echo "E.g. use \"git push vendors/${vendor} HEAD\" to push the current branch"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 git config --replace-all "remote.vendors/${vendor}.push" "refs/heads/${vendor}/*:refs/vendors/${vendor}/heads/*"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63 else
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 git config --unset-all "remote.vendors/${vendor}.push"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 fi
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 git fetch vendors/${vendor}