Home GnuPG

Simplify "git fetch" behavior in the Pull daemon
20892ae50236Unpublished

Unpublished Commit ยท Learn More

Repository Importing: This repository is still importing.

Description

Simplify "git fetch" behavior in the Pull daemon

Summary:
Ref T12392. The logic currently goes like this:

  • Try a fetch.
  • If that fails, try repairing the origin URI.
  • Then try again.

This is pretty complicated, and we can use this simpler logic instead:

  • Set the origin URI to the right value.
  • Try a fetch.

Setting the origin URI is very fast. This can normally only get us in any trouble in very obscure situations which haven't occurred for many years:

  • Pretty much all of this is already covered by verifyGitOrigin(), which we run earlier.
  • Origins could be configured to have multiple URIs for some reason, but shouldn't be.
  • Years ago, you could configure Phabricator to point at a local repository it didn't own and that could conceivably have a different "origin" that you might not want us to delete. If you did this, the daemons have been spewing errors for 3-4 years without you fixing it. The cost of fixing the remote URI is very small even if anyone is affected by this (just set it back to the old value) and there's zero reason to do this and the scenario is ridiculous.

Test Plan: Ran bin/repository update PHABX --trace --verbose, saw fetches go through cleanly after URI adjustment.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12392

Differential Revision: https://secure.phabricator.com/D17498

Details

Provenance
epriestley <git@epriestley.com>Authored on Mar 14 2017, 11:32 PM
Parents
rPHAB2b0ad243d179: Use "git ls-remote" to guess if "git fetch" is a no-op
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPHAB20892ae50236: Simplify "git fetch" behavior in the Pull daemon (authored by epriestley <git@epriestley.com>).Mar 18 2017, 12:43 AM