Page MenuHomePhabricator

Build a flexible revision lookup API in Arcanist
Closed, ResolvedPublic

Assigned To
Authored By
epriestley
Jul 21 2016, 11:33 AM
Referenced Files
None
Tokens
"Mountain of Wealth" token, awarded by jonathanrseawright."Doubloon" token, awarded by bjshively."Dat Boi" token, awarded by yelirekim.

Description

Several proposed changes depend on being able to go from an arbitrary blob of information (commit hash, commit message, branch name, directory name, tree hash, phase of the moon) to a revision.

These changes include:

  • (T11343) Make arc diff automatically detect "depends on".
  • (T3875) Make arc land automatically strip redundant changes.
  • (T3875 ) Implement arc cascade.
  • (T10895) Make arc browse do revision lookup for commits/branches.
  • (T6072) Likely, improvements to arc patch, arc which, generally to arc diff.

Echoes of this code already exist in two places:

  • arc branch identifies commits on branches using a limited subset of the full query we should be executing.
  • arc diff (via loadWorkingCopyDifferentialRevisions()) uses this in several cases, but can only query the current working copy state.

These should be unified and turned into a core API.

Event Timeline

eadler added a project: Restricted Project.Jul 25 2016, 4:23 PM

I'm not sure if D16857 is even close to the right level of generality or correct approach and the answer has yet to come to me in a dream, so I'm going to push forward on top of it and see how far I get. If too much stuff stacks up I'll maybe shove this stuff into an experimental branch for now until I decide whether I'm throwing it all away or not.

I'm sure if I keep digging we'll be out of this hole in no time.

epriestley claimed this task.

This approximately exists now via T11968.