Separate repository updates from the pull daemon
Ref T4605. Currently, the PullLocal daemon is responsible for two relatively distinct things:
- scheduling repository updates; and
- actually updating repositories.
Move the "actually updating" part into a new bin/repository update command, which basically runs the pull, discover, refs and mirror commands. This will let the parent process focus on scheduling in a more understandable way and update multiple repositories at once. It also makes it easier to debug and understand update behavior since the non-scheduling pipeline can be run separately.
- Ran update --trace on SVN, Mercurial and Git repos.
- Ran PullLocal daemon for a while without issues.
Reviewed By: btrahan
Maniphest Tasks: T4605
Differential Revision: https://secure.phabricator.com/D8780