EditEngine is new infrastructure for creating and editing objects. Maniphest and a number of other applications have switched to it and reaped great rewards; Differential has not yet. Some of the benefits include:
- New differential.revision.edit and differential.revision.search API endpoints.
- Differential would get the new draft code, and stop having zombie comments stick around in the text box after submission.
T10967 should probably happen before/during this.
This is currently a large amount of work with few direct benefits.
Errata:
- DifferentialRevisionEditController had a setRepositoryPHIDOverride() call for forcing revision repository edits to win over diff repository edits. Do we need / can we simplify this?
- DifferentialRevisionEditController had some similar code where we defaulted the repository and view policy to those from the diff.
- The Reviewers transaction has some special casing around commandeering creating an exception to the rule that a revision's author can not be a reviewer.
- Edit form breadcrumb text strings, etc., could use some finessing -- seem okayish?
- Default field order on the new edit form differs slightly from old field order?
- Create diff, Create New Revision flow a little light on handholding?
- Tasks field is no longer directly writable.
- JIRA Issues field needs dedicated testing.
Reference screenshot for old form: