diff options
author | Cole Faust <colefaust@google.com> | 2023-10-19 12:54:20 -0700 |
---|---|---|
committer | Luca Milanesio <luca.milanesio@gmail.com> | 2023-10-24 21:10:52 +0000 |
commit | 2f3df3f36b292292a714d5bf3c8d1103d0d4b022 (patch) | |
tree | b00e8b00655bf833f1b7086cb16085bbeb4afa52 | |
parent | d85fa3717f433b17291a949f1812f3220739532b (diff) |
Use "Revert^2" syntax for subsequent reverts
This is cleaner than multiple "Revert "Revert "Revert ..." prefixes,
and gerrit already has this logic on the backend, just not on this
one particular UI element:
https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revert-submission
https://source.corp.google.com/piper///depot/google3/third_party/java_src/gerritcodereview/gerrit/java/com/google/gerrit/server/restapi/change/RevertSubmission.java;rcl=574788356;l=377
This should eventually be changed to use "Reapply" instead, but
this cl is to just make it consistent with the other parts of gerrit
for now. See b/40014605
Release-Notes: The revert UI now defaults to Revert^2 instead of "Revert "Revert "..."""
Change-Id: I4d341ba4e1f8efdd6df2f0524be99b6d4243f461
(cherry picked from commit dc1f5f7154a5a3d54164509bf9d476c99cc002ce)
2 files changed, 25 insertions, 2 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts index ceccdda11f..51310836eb 100644 --- a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts +++ b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts @@ -209,7 +209,16 @@ export class GrConfirmRevertDialog ) { // Figure out what the revert title should be. const originalTitle = (commitMessage || '').split('\n')[0]; - const revertTitle = `Revert "${originalTitle}"`; + let revertTitle = `Revert "${originalTitle}"`; + const match = originalTitle.match(/^Revert(?:\^([0-9]+))? "(.*)"$/); + if (match) { + let revertNum = 2; + if (match[1]) { + revertNum = Number(match[1]) + 1; + } + revertTitle = `Revert^${revertNum} "${match[2]}"`; + } + if (!commitHash) { fireAlert(this, ERR_COMMIT_NOT_FOUND); return; diff --git a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts index 8d71e1597f..920ff00991 100644 --- a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts +++ b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts @@ -105,7 +105,21 @@ suite('gr-confirm-revert-dialog tests', () => { 'abcd123' as CommitId ); const expected = - 'Revert "Revert "one line commit""\n\n' + + 'Revert^2 "one line commit"\n\n' + + 'This reverts commit abcd123.\n\n' + + 'Reason for revert: <INSERT REASONING HERE>\n'; + assert.equal(element.message, expected); + }); + + test('revert a revert of a revert', () => { + assert.isNotOk(element.message); + element.populateRevertSingleChangeMessage( + createParsedChange(), + 'Revert^2 "one line commit"\n\nChange-Id: abcdefg\n', + 'abcd123' as CommitId + ); + const expected = + 'Revert^3 "one line commit"\n\n' + 'This reverts commit abcd123.\n\n' + 'Reason for revert: <INSERT REASONING HERE>\n'; assert.equal(element.message, expected); |