Page MenuHomePhabricator

Move Git discovery into DiscoveryEngine
ClosedPublic

Authored by epriestley on Jan 17 2014, 1:17 AM.
Tags
None
Referenced Files
F19090404: D7987.id.diff
Wed, Dec 3, 11:43 AM
F19078560: D7987.diff
Mon, Dec 1, 6:29 PM
F18910759: D7987.id18088.diff
Nov 9 2025, 3:23 AM
F18877796: D7987.id18068.diff
Nov 6 2025, 11:58 AM
F18856846: D7987.id.diff
Nov 1 2025, 11:47 AM
F18847662: D7987.diff
Oct 30 2025, 1:44 AM
F18765003: D7987.diff
Oct 7 2025, 9:02 AM
F18734550: D7987.id.diff
Sep 30 2025, 10:56 PM
Subscribers
Tokens
"Mountain of Wealth" token, awarded by btrahan.

Details

Summary

Ref T4327. Consolidates and simplifies infrastructure:

  • Moves Git discovery into DiscoveryEngine.
  • Collapses a bunch of the Git and Mercurial code related to stream discovery.
  • Removes all cach code from PullLocal daemon (it's no longer called).
  • Adds basic unit tests for Git and Mercurial discovery.

Various cleanup:

  • Makes GitStream and MercurialStream extend a common base.
  • Improves performance of MercurialStream in some cases, by requiring fewer commits be output and parsed.
  • Makes mirroring exceptions easier to debug.
  • Fixes discovery of Mercurial repositories with multiple branch heads.
  • Adds some missing pht().
Test Plan

I tested this fairly throughly because I think this phase is complete:

  • Made new repositories in multiple VCSes and did full imports.
    • Particularly, I reimported Arcanist to make sure that TODO was resolved. I think it was related to the toposort stuff.
  • Pushed commits to multiple VCSes.
  • Pushed commits to a non-close branch, then pushed a merge commit. Observed commits import initially as non-close, then get flagged for close.
  • Started full daemons and resolved various minor issues that showed up in the daemon log until everything ran cleanly.
  • Basically spent about 30 minutes banging on this in every way I could think of to try to break it. I found and fixed some minor stuff, but it seems solid.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped