diff --git a/contrib/gcc-git-customization b/contrib/gcc-git-customization new file mode 100755 index 00000000000..7f1a13bdf79 --- /dev/null +++ b/contrib/gcc-git-customization @@ -0,0 +1,54 @@ +#!/bin/sh + +# Script to add some local git customizations suitable for working +# with the GCC git repository + +ask () { + question=$1 + default=$2 + var=$3 + echo -n $question "["$default"]? " + read answer + if [ "x$answer" = "x" ] + then + eval $var=$default + else + eval $var=$answer + fi +} + +# Add a git command to find the git commit equivalent to legacy SVN revision NNN +git config alias.svn-rev '!f() { rev=$1; shift; git log --all --grep="From-SVN: r$rev\\b" "${@}"; } ; f' + +upstream=`git config --get "gcc-config.upstream"` +if [ "x$upstream" = "x" ] +then + upstream="origin" +fi +ask "Local name for upstream repository" "origin" upstream +git config "gcc-config.upstream" "$upstream" + +remote_id=`git config --get "gcc-config.user"` +if [ "x$remote_id" = "x" ] +then + # See if the url specifies the remote user name. + url=`git config --get "remote.$upstream.url"` + if [ "x$url" = "x" ] + then + # This is a pure guess, but for many people it might be OK. + remote_id=`whoami` + else + remote_id=`echo $url | sed -r "s|^.*ssh://(.+)@gcc.gnu.org.*$|\1|"` + if [ x$remote_id = x$url ] + then + remote_id=`whoami` + fi + fi +fi +ask "Account name on gcc.gnu.org" $remote_id remote_id +git config "gcc-config.user" "$remote_id" + +echo "Setting up tracking for private namespace $remote_id in remotes/$upstream/me" +git config --replace-all "remote.${upstream}.fetch" "+refs/users/${remote_id}/heads/*:refs/remotes/${upstream}/me/*" ":refs/remotes/${upstream}/me/" +git config --replace-all "remote.${upstream}.fetch" "+refs/users/${remote_id}/tags/*:refs/tags/me/*" ":refs/tags/me/" +git config --replace-all "remote.${upstream}.push" "+refs/heads/me/*:refs/users/${remote_id}/heads/*" "^\+refs/heads/me/"