summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCole Faust <colefaust@google.com>2023-10-19 12:54:20 -0700
committerLuca Milanesio <luca.milanesio@gmail.com>2023-10-24 21:10:52 +0000
commit2f3df3f36b292292a714d5bf3c8d1103d0d4b022 (patch)
treeb00e8b00655bf833f1b7086cb16085bbeb4afa52
parentd85fa3717f433b17291a949f1812f3220739532b (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)
-rw-r--r--polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts11
-rw-r--r--polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts16
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);