1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-21 04:50:55 +01:00

Remove commit from DiffusionRequest

Summary: Ref T2683. This field is //almost// entirely redundant with `symbolicCommit`. Improve how some of the diff query stuff works a bit, then remove it.

Test Plan: Browsed around in all interfaces, looked at a bunch of diffs, etc.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T2683

Differential Revision: https://secure.phabricator.com/D9099
This commit is contained in:
epriestley 2014-05-13 13:53:06 -07:00
parent 347252fda8
commit 23ada21d35
9 changed files with 40 additions and 23 deletions

View file

@ -168,7 +168,7 @@ final class ConduitAPI_diffusion_diffquery_Method
$drequest, $drequest,
'diffusion.lastmodifiedquery', 'diffusion.lastmodifiedquery',
array( array(
'paths' => array($path => $drequest->getCommit()), 'paths' => array($path => $drequest->getStableCommit()),
)); ));
$this->effectiveCommit = idx($result, $path); $this->effectiveCommit = idx($result, $path);
@ -199,10 +199,10 @@ final class ConduitAPI_diffusion_diffquery_Method
if (!$effective_commit) { if (!$effective_commit) {
return $this->getEmptyResult(1); return $this->getEmptyResult(1);
} }
// TODO: This side effect is kind of sketchy.
$drequest->setCommit($effective_commit);
$raw_query = DiffusionRawDiffQuery::newFromDiffusionRequest($drequest); $raw_query = DiffusionRawDiffQuery::newFromDiffusionRequest($drequest)
->setAnchorCommit($effective_commit);
$raw_diff = $raw_query->loadRawDiff(); $raw_diff = $raw_query->loadRawDiff();
if (!$raw_diff) { if (!$raw_diff) {
return $this->getEmptyResult(2); return $this->getEmptyResult(2);

View file

@ -18,7 +18,9 @@ final class DiffusionChangeController extends DiffusionController {
'commit' => $drequest->getCommit(), 'commit' => $drequest->getCommit(),
'path' => $drequest->getPath(), 'path' => $drequest->getPath(),
)); ));
$drequest->setCommit($data['effectiveCommit']);
$drequest->updateSymbolicCommit($data['effectiveCommit']);
$raw_changes = ArcanistDiffChange::newFromConduit($data['changes']); $raw_changes = ArcanistDiffChange::newFromConduit($data['changes']);
$diff = DifferentialDiff::newFromRawChanges($raw_changes); $diff = DifferentialDiff::newFromRawChanges($raw_changes);
$changesets = $diff->getChangesets(); $changesets = $diff->getChangesets();
@ -31,7 +33,6 @@ final class DiffusionChangeController extends DiffusionController {
$repository = $drequest->getRepository(); $repository = $drequest->getRepository();
$callsign = $repository->getCallsign(); $callsign = $repository->getCallsign();
$commit = $drequest->getSymbolicCommit();
$changesets = array( $changesets = array(
0 => $changeset, 0 => $changeset,
); );

View file

@ -51,7 +51,7 @@ final class DiffusionDiffController extends DiffusionController {
array( array(
'commit' => $drequest->getCommit(), 'commit' => $drequest->getCommit(),
'path' => $drequest->getPath())); 'path' => $drequest->getPath()));
$drequest->setCommit($data['effectiveCommit']); $drequest->updateSymbolicCommit($data['effectiveCommit']);
$raw_changes = ArcanistDiffChange::newFromConduit($data['changes']); $raw_changes = ArcanistDiffChange::newFromConduit($data['changes']);
$diff = DifferentialDiff::newFromRawChanges($raw_changes); $diff = DifferentialDiff::newFromRawChanges($raw_changes);
$changesets = $diff->getChangesets(); $changesets = $diff->getChangesets();

View file

@ -152,7 +152,7 @@ final class DiffusionHistoryController extends DiffusionController {
->setUser($viewer) ->setUser($viewer)
->setActionList($actions); ->setActionList($actions);
$stable_commit = $drequest->getStableCommitName(); $stable_commit = $drequest->getStableCommit();
$callsign = $drequest->getRepository()->getCallsign(); $callsign = $drequest->getRepository()->getCallsign();
$view->addProperty( $view->addProperty(

View file

@ -6,7 +6,7 @@ final class DiffusionGitRawDiffQuery extends DiffusionRawDiffQuery {
$drequest = $this->getRequest(); $drequest = $this->getRequest();
$repository = $drequest->getRepository(); $repository = $drequest->getRepository();
$commit = $drequest->getCommit(); $commit = $this->getAnchorCommit();
$options = array( $options = array(
'-M', '-M',

View file

@ -10,7 +10,7 @@ final class DiffusionMercurialRawDiffQuery extends DiffusionRawDiffQuery {
$drequest = $this->getRequest(); $drequest = $this->getRequest();
$repository = $drequest->getRepository(); $repository = $drequest->getRepository();
$commit = $drequest->getCommit(); $commit = $this->getAnchorCommit();
// If there's no path, get the entire raw diff. // If there's no path, get the entire raw diff.
$path = nonempty($drequest->getPath(), '.'); $path = nonempty($drequest->getPath(), '.');

View file

@ -2,9 +2,9 @@
abstract class DiffusionRawDiffQuery extends DiffusionQuery { abstract class DiffusionRawDiffQuery extends DiffusionQuery {
private $request;
private $timeout; private $timeout;
private $linesOfContext = 65535; private $linesOfContext = 65535;
private $anchorCommit;
private $againstCommit; private $againstCommit;
private $byteLimit; private $byteLimit;
@ -53,6 +53,19 @@ abstract class DiffusionRawDiffQuery extends DiffusionQuery {
return $this->againstCommit; return $this->againstCommit;
} }
public function setAnchorCommit($anchor_commit) {
$this->anchorCommit = $anchor_commit;
return $this;
}
public function getAnchorCommit() {
if ($this->anchorCommit) {
return $this->anchorCommit;
}
return $this->getRequest()->getStableCommit();
}
protected function configureFuture(ExecFuture $future) { protected function configureFuture(ExecFuture $future) {
if ($this->getTimeout()) { if ($this->getTimeout()) {
$future->setTimeout($this->getTimeout()); $future->setTimeout($this->getTimeout());

View file

@ -6,7 +6,7 @@ final class DiffusionSvnRawDiffQuery extends DiffusionRawDiffQuery {
$drequest = $this->getRequest(); $drequest = $this->getRequest();
$repository = $drequest->getRepository(); $repository = $drequest->getRepository();
$commit = $drequest->getCommit(); $commit = $this->getAnchorCommit();
$arc_root = phutil_get_library_root('arcanist'); $arc_root = phutil_get_library_root('arcanist');
$against = $this->getAgainstCommit(); $against = $this->getAgainstCommit();

View file

@ -12,7 +12,6 @@ abstract class DiffusionRequest {
protected $callsign; protected $callsign;
protected $path; protected $path;
protected $line; protected $line;
protected $commit;
protected $branch; protected $branch;
protected $lint; protected $lint;
@ -241,11 +240,6 @@ abstract class DiffusionRequest {
// TODO: Probably remove all of this. // TODO: Probably remove all of this.
// Required for sketchy sins that `diffusion.diffquery` commits.
if ($this->commit) {
return $this->commit;
}
if ($this->getSymbolicCommit() !== null) { if ($this->getSymbolicCommit() !== null) {
return $this->getSymbolicCommit(); return $this->getSymbolicCommit();
} }
@ -272,6 +266,20 @@ abstract class DiffusionRequest {
} }
/**
* Modify the request to move the symbolic commit elsewhere.
*
* @param string New symbolic commit.
* @return this
*/
public function updateSymbolicCommit($symbol) {
$this->symbolicCommit = $symbol;
$this->symbolicType = null;
$this->stableCommit = null;
return $this;
}
/** /**
* Get the ref type (`commit` or `tag`) of the location associated with this * Get the ref type (`commit` or `tag`) of the location associated with this
* request. * request.
@ -380,11 +388,6 @@ abstract class DiffusionRequest {
return $this->repositoryCommitData; return $this->repositoryCommitData;
} }
public function setCommit($commit) {
$this->commit = $commit;
return $this;
}
/* -( Managing Diffusion URIs )-------------------------------------------- */ /* -( Managing Diffusion URIs )-------------------------------------------- */