diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index b9c8fea6a16a90eaf3813cbc9887aa01ffcf822b..ddaff4fc6d8b44e89488e3f896cd47c97ff52999 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-13  Richard Earnshaw  <rearnsha@arm.com>
+
+	* gcc-git-customization.sh: New file.
+
 2020-01-01  Jakub Jelinek  <jakub@redhat.com>
 
 	* update-copyright.py: Add Mentor Graphics Corporation and Yoshinori
diff --git a/contrib/gcc-git-customization.sh b/contrib/gcc-git-customization.sh
new file mode 100755
index 0000000000000000000000000000000000000000..169c3a4d35607d9a49a824ec7eb208036e0c0678
--- /dev/null
+++ b/contrib/gcc-git-customization.sh
@@ -0,0 +1,69 @@
+#!/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'
+
+# Make diff on MD files uses "(define" as a function marker.
+# Use this in conjunction with a .gitattributes file containing
+# *.md    diff=md
+git config diff.md.xfuncname '^\(define.*$'
+
+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"
+
+old_pfx=`git config --get "gcc-config.userpfx"`
+if [ "x$old_pfx" = "x" ]
+then
+    old_pfx="me"
+fi
+echo "Local branch prefix for personal branches you want to share"
+echo "(local branches starting <prefix>/ can be pushed directly to your"
+ask "personal area on the gcc server)" $old_pfx new_pfx
+git config "gcc-config.userpfx" "$new_pfx"
+
+echo "Setting up tracking for personal namespace $remote_id in remotes/$upstream/${new_pfx}"
+git config --replace-all "remote.${upstream}.fetch" "+refs/users/${remote_id}/heads/*:refs/remotes/${upstream}/${new_pfx}/*" ":refs/remotes/${upstream}/${old_pfx}/"
+git config --replace-all "remote.${upstream}.fetch" "+refs/users/${remote_id}/tags/*:refs/tags/${new_pfx}/*" ":refs/tags/${old_pfx}/"
+git config --replace-all "remote.${upstream}.push" "refs/heads/${new_pfx}/*:refs/users/${remote_id}/heads/*" "^\+?refs/heads/${old_pfx}/"