Homec4science

Drive commit message rendering from field specifications

Authored by epriestley <git@epriestley.com> on Aug 16 2011, 06:06.

Description

Drive commit message rendering from field specifications

Summary:
When rendering commit messages, drive all the logic through field specification
classes instead of the hard-coded DifferentialCommitMessageData class. This
removes DifferentialCommitMessageData and support classes.

Note that this effectively reverts D546, and will cause a minor break for
Facebook (Task IDs will no longer render in commit messages generated by "arc
amend", and will not be editable via "arc diff --edit"). This can be resolved by
implementing the feature as a custom field. While I've been able to preserve the
task ID functionality elsewhere, I felt this implementation was too complex to
reasonably leave hooks for, and the break is pretty minor.

Test Plan:

  • Made numerous calls to differential.getcommitmessage across many diffs in

various states, with and without 'edit' and with and without various field
overrides.

  • General behavior seems correct (messages look accurate, and have the

expected information). Special fields like "Reviewed By" and "git-svn-id" seem
to work correctly.

  • Edit behavior seems correct (edit mode shows all editable fields, hides

fields like "Reviewed By").

  • Field overwrite behavior seems correct (overwritable fields show the correct

values when overwritten, ignore provided values otherwise).

Reviewed By: jungejason
Reviewers: jungejason, tuomaspelkonen, aran
CC: aran, jungejason
Differential Revision: 814

Details

Committed
epriestley <git@epriestley.com>Aug 18 2011, 16:20
Pushed
aubortJan 31 2017, 17:16
Parents
rPH966778c2bdfb: Improve unhandled exception dialogs
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPHae7488f71005: Drive commit message rendering from field specifications (authored by epriestley <git@epriestley.com>).Aug 18 2011, 16:20