HomePhabricator

Separate changeset analysis code from DifferentialDiff and provide a standalone…

Description

Separate changeset analysis code from DifferentialDiff and provide a standalone rebuild-changesets workflow

Summary:
Ref T13137. The "analyze/cache data about changesets" step is becoming more involved. We recently added detection for generated code to support "Ignore generated changes" in Owners, and I now plan to hash the new file content so we can hide changes which have no effect.

Before adding this new hashing step, pull the "detect copied code" and "detect generated code" stuff out and move them to a separate ChangesetEngine. Then support doing a changeset rebuild directly with bin/differential rebuild-changesets.

This simplifies things a bit and makes testing easier since you don't need to keep creating new revisions to re-run copy/generated/hash logic.

Test Plan: Ran bin/differential rebuild-changesets --revision Dxxx, saw changesets rebuild. See also next change.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13137

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