contrib: Don't add push rules for personal and vendor spaces.
authorRichard Earnshaw <rearnsha@arm.com>
Wed, 15 Jan 2020 11:30:07 +0000 (11:30 +0000)
committerRichard Earnshaw <rearnsha@arm.com>
Wed, 15 Jan 2020 11:31:29 +0000 (11:31 +0000)
Originally, it seemed like a good idea to add automatic 'push' rules
to the git configuration, so that personal- and vendor-space commits
would automatically push to the right place.  Unfortunately, this
changes git's behaviour and with these settings "git push" will try to
push all branches in a local tree up to the corresponding location on
the server (ignoring the push.default setting).  The only known
mitigation for this is to ALWAYS use "git push <server> <branch>".

So instead, we no-longer add those rules by default and will document
the options on the wiki.  We don't automatically remove the push
entries but do print out the command that will do so, if the user so
wishes.

* gcc-git-customization.sh: Explain why we want the user's
upstream account name.  Don't add push rules.  Check if push rules
have been added and suggest that they should be removed.
* git-fetch-vendor.sh: Don't add push rules.

contrib/ChangeLog
contrib/gcc-git-customization.sh
contrib/git-fetch-vendor.sh

index 79956444091570a927b05f5129337f7773647bca..f224c20f0aa14474b10dbb373fd6062f455acd48 100644 (file)
@@ -1,3 +1,10 @@
+2010-01-15  Richard Earnshaw  <rearnsha@arm.com>
+
+       * gcc-git-customization.sh: Explain why we want the user's
+       upstream account name.  Don't add push rules.  Check if push rules
+       have been added and suggest that they should be removed.
+       * git-fetch-vendor.sh: Don't add push rules.
+
 2010-01-13  Richard Earnshaw  <rearnsha@arm.com>
 
        Revert:
index 3b9d79d3d38e29475b340e1b94a057f306f33712..dae2c35bb57fb498d71f390b75a47e0f943fa023 100755 (executable)
@@ -55,7 +55,7 @@ then
        fi
     fi
 fi
-ask "Account name on gcc.gnu.org" $remote_id remote_id
+ask "Account name on gcc.gnu.org (for your personal branches area)" $remote_id remote_id
 git config "gcc-config.user" "$remote_id"
 
 old_pfx=`git config --get "gcc-config.userpfx"`
@@ -71,4 +71,19 @@ 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}/"
+
+push_rule=`git config --get "remote.${upstream}.push"`
+if [ "x$push_rule" != "x" ]
+then
+    echo "***********************************************"
+    echo "                  Warning"
+    echo "***********************************************"
+    echo
+    echo "Old versions of this script used to add custom push"
+    echo "rules to simplify pushing to personal branches."
+    echo "Your configuration contains such rules, but we no-longer"
+    echo "recommend doing this."
+    echo
+    echo "To delete these rules run:"
+    echo "  git config --unset-all \"remote.${upstream}.push\""
+fi
index 5e1b1f0a8540365a63c4245cddfc7cd76d93191b..d2d3ed56ad77115527a397d48e83c882219a8608 100755 (executable)
@@ -15,8 +15,6 @@ then
 fi
 
 echo "setting up git to fetch vendor ${vendor} to remotes/${upstream}/${vendor}"
-
 git config --replace-all "remote.${upstream}.fetch" "+refs/vendors/${vendor}/heads/*:refs/remotes/${upstream}/${vendor}/*" ":refs/remotes/${upstream}/${vendor}/"
 git config --replace-all "remote.${upstream}.fetch" "+refs/vendors/${vendor}/tags/*:refs/tags/${vendor}/*" ":refs/tags/${vendor}/"
-git config --replace-all "remote.${upstream}.push" "+refs/heads/${vendor}/*:refs/vendors/${vendor}/heads/*" "^\+refs/heads/${vendor}/"
 git fetch