1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 23:02: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:
Afaque Hussain 2013-03-07 08:55:34 -08:00 committed by epriestley
parent 419d7de1bf
commit dd3d33c610

View file

@ -352,6 +352,7 @@ EOTEXT
$rev_status = $this->revision['status']; $rev_status = $this->revision['status'];
$rev_id = $this->revision['id']; $rev_id = $this->revision['id'];
$rev_title = $this->revision['title']; $rev_title = $this->revision['title'];
$rev_auxiliary = idx($this->revision, 'auxiliary', array());
if ($rev_status != ArcanistDifferentialRevisionStatus::ACCEPTED) { if ($rev_status != ArcanistDifferentialRevisionStatus::ACCEPTED) {
$ok = phutil_console_confirm( $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( $message = $this->getConduit()->callMethodSynchronous(
'differential.getcommitmessage', 'differential.getcommitmessage',
array( array(