mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-22 06:42:41 +01:00
If a revision depends on another revision which has not yet been closed, warn the developer
Summary: Have arc land inspect the revision if it depends on some other revisions which haven't been closed yet. If yes, then warn users. Test Plan: Will test them locally. Reviewers: epriestley, AnhNhan CC: aran, Korvin, AnhNhan Differential Revision: https://secure.phabricator.com/D5262
This commit is contained in:
parent
419d7de1bf
commit
dd3d33c610
1 changed files with 37 additions and 0 deletions
|
@ -352,6 +352,7 @@ EOTEXT
|
|||
$rev_status = $this->revision['status'];
|
||||
$rev_id = $this->revision['id'];
|
||||
$rev_title = $this->revision['title'];
|
||||
$rev_auxiliary = idx($this->revision, 'auxiliary', array());
|
||||
|
||||
if ($rev_status != ArcanistDifferentialRevisionStatus::ACCEPTED) {
|
||||
$ok = phutil_console_confirm(
|
||||
|
@ -362,6 +363,42 @@ EOTEXT
|
|||
}
|
||||
}
|
||||
|
||||
if ($rev_auxiliary) {
|
||||
$phids = idx($rev_auxiliary, 'phabricator:depends-on', array());
|
||||
|
||||
$dep_on_revs = $this->getConduit()->callMethodSynchronous(
|
||||
'differential.query',
|
||||
array(
|
||||
'phids' => $phids,
|
||||
'status' => 'status-open',
|
||||
));
|
||||
|
||||
$open_dep_revs = array();
|
||||
foreach ($dep_on_revs as $dep_on_rev) {
|
||||
$dep_on_rev_id = $dep_on_rev['id'];
|
||||
$dep_on_rev_title = $dep_on_rev['title'];
|
||||
$dep_on_rev_status = $dep_on_rev['status'];
|
||||
$open_dep_revs[$dep_on_rev_id] = $dep_on_rev_title;
|
||||
}
|
||||
|
||||
if (!empty($open_dep_revs)) {
|
||||
$open_revs = array();
|
||||
foreach ($open_dep_revs as $id => $title) {
|
||||
$open_revs[] = " - D".$id.": ".$title;
|
||||
}
|
||||
$open_revs = implode("\n", $open_revs);
|
||||
|
||||
echo "Revision 'D{$rev_id}: {$rev_title}' depends ".
|
||||
"on open revisions:\n\n";
|
||||
echo $open_revs;
|
||||
|
||||
$ok = phutil_console_confirm("Continue anyway?");
|
||||
if (!$ok) {
|
||||
throw new ArcanistUserAbortException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$message = $this->getConduit()->callMethodSynchronous(
|
||||
'differential.getcommitmessage',
|
||||
array(
|
||||
|
|
Loading…
Reference in a new issue