Thanks Edwin & Jonathan. I've opened
feature request 9379.
Looking at the relevant code (ChangeKindCacheImpl and ApprovalsCopier), it seems like these types of commits are classified as REWORKs, which means neither of those copyAllScores apply by design. So, either these types of commits will need to be classified as an existing type, or a new type.
Existing ChangeKinds to consider:
- TRIVIAL_REBASE
- This type of commit technically fits with the description of "Conflict-free merge between the new parent and the prior patch set" in the patchSet documentation, as commit message deltas can't create conflicts
- It may break some plugins/integrations/etc. that assume this ChangeType implies commit-message is unchanged
- NO_CODE_CHANGE
- This type of commit technically fits with the name, if you consider commit-messages not to be code
- It doesn't fit the documented description of "Same tree and same parent-tree"
New ChangeKind (e.g. REBASE_NO_CODE_CHANGE):
- This can also be problematic for existing plugins/integrations/etc. that have handlers for the current 5 kinds & assume these cover all types of commits
I'm not sure if any one of these options are preferable (or if these are the only ones), but in any case I hope this helps in fleshing out this feature.
Thanks!