Make repository pulls testable
Summary:
Ref T2784. This moves us toward being able to test the background and Conduit pipelines for repositories. In particular:
- Separate the logic for pulling repositories (git pull, hg pull) out of PhabricatorRepositoryPullLocalDaemon and put it in PhabricatorRepositoryPullEngine. This allows repositories to be pulled directly without invoking the daemons.
- Add tests for the engine, including a future-looking base test case.
- Add basic PhutilDirectoryFixture-based repositories.
Next steps:
- Do the same for repo discovery.
- Then we can start writing tests against specific Conduit methods.
Test Plan: Ran unit tests. Ran bin/repository pull on SVN, Hg and Git repositories. Ran bin/phd debug pulllocal.
Reviewers: btrahan
Reviewed By: btrahan
CC: aran, nh
Maniphest Tasks: T2784
Differential Revision: https://secure.phabricator.com/D5904