mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-22 23:02:41 +01:00
Arcanist - allow amending revisions by other authors in the working copy
Summary: Fixes T4670. Give the user an option to abort but otherwise proceed. Test Plan: arc patch D8685 (by epriestley); arc amend Reviewers: epriestley Reviewed By: epriestley Subscribers: epriestley, Korvin Maniphest Tasks: T4670 Differential Revision: https://secure.phabricator.com/D8716
This commit is contained in:
parent
0cff627d75
commit
2714395d98
1 changed files with 18 additions and 1 deletions
|
@ -94,7 +94,6 @@ EOTEXT
|
||||||
$in_working_copy = $repository_api->loadWorkingCopyDifferentialRevisions(
|
$in_working_copy = $repository_api->loadWorkingCopyDifferentialRevisions(
|
||||||
$this->getConduit(),
|
$this->getConduit(),
|
||||||
array(
|
array(
|
||||||
'authors' => array($this->getUserPHID()),
|
|
||||||
'status' => 'status-any',
|
'status' => 'status-any',
|
||||||
));
|
));
|
||||||
$in_working_copy = ipull($in_working_copy, null, 'id');
|
$in_working_copy = ipull($in_working_copy, null, 'id');
|
||||||
|
@ -113,6 +112,24 @@ EOTEXT
|
||||||
throw new ArcanistUsageException($message);
|
throw new ArcanistUsageException($message);
|
||||||
} else {
|
} else {
|
||||||
$revision_id = key($in_working_copy);
|
$revision_id = key($in_working_copy);
|
||||||
|
$revision = $in_working_copy[$revision_id];
|
||||||
|
if ($revision['authorPHID'] != $this->getUserPHID()) {
|
||||||
|
$other_author = $this->getConduit()->callMethodSynchronous(
|
||||||
|
'user.query',
|
||||||
|
array(
|
||||||
|
'phids' => array($revision['authorPHID']),
|
||||||
|
));
|
||||||
|
$other_author = ipull($other_author, 'userName', 'phid');
|
||||||
|
$other_author = $other_author[$revision['authorPHID']];
|
||||||
|
$rev_title = $revision['title'];
|
||||||
|
$ok = phutil_console_confirm(
|
||||||
|
"You are amending the revision 'D{$revision_id}: {$rev_title}' ".
|
||||||
|
"but you are not the author. Amend this revision by ".
|
||||||
|
"{$other_author}?");
|
||||||
|
if (!$ok) {
|
||||||
|
throw new ArcanistUserAbortException();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue