1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 14:52:40 +01:00

Allow amending revisions without commandeering first

Summary:
It is common practice in Wikimedia's projects to amend a contributor's
change without taking over authorship of the change. We found that
the only enforcement of commandeering before amending is in arcanist,
not validated server-side. While it would be fairly straightforward to
maintain this as a patch to arcanist, I thought I would see if upstream
is willing to support making this optional.

With this change, amending without commandeering is enabled by a flag in
`.arcconfig` and it defaults to the old behavior.

For background see [wmf T121751](https://phabricator.wikimedia.org/T121751)

Test Plan:
* ran `arc patch D146` to locally apply a revision that I did not author,
* made a trivial change and amended the commit.
* ran `arc diff --update D146 HEAD^` to send the update to differential
* Saw that https://phabricator.wikimedia.org/D146 updated as it should.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: greggrossmeier, aklapper, Luke081515.2, Korvin, dereckson

Maniphest Tasks: T10584

Differential Revision: https://secure.phabricator.com/D15468
This commit is contained in:
Mukunda Modell 2016-04-09 11:47:09 -05:00
parent 8701e6c1f3
commit 737f5c0df9

View file

@ -2529,13 +2529,19 @@ EOTEXT
$id = $revision['id']; $id = $revision['id'];
$title = $revision['title']; $title = $revision['title'];
throw new ArcanistUsageException( $prompt = pht(
pht( "You don't own revision %s: \"%s\". Normally, you should ".
"You don't own revision %s '%s'. You can only update revisions ". "only update revisions you own. You can \"Commandeer\" this revision ".
"you own. You can 'Commandeer' this revision from the web ". "from the web interface if you want to become the owner.\n\n".
"interface if you want to become the owner.", "Update this revision anyway? [y/N]",
"D{$id}", "D{$id}",
$title)); $title);
$ok = phutil_console_confirm($prompt, $default_no = true);
if (!$ok) {
throw new ArcanistUsageException(
pht('Aborted update of revision: You are not the owner.'));
}
} }