Page MenuHomePhabricator

D9099.id21635.diff
No OneTemporary

D9099.id21635.diff

diff --git a/src/applications/diffusion/conduit/ConduitAPI_diffusion_diffquery_Method.php b/src/applications/diffusion/conduit/ConduitAPI_diffusion_diffquery_Method.php
--- a/src/applications/diffusion/conduit/ConduitAPI_diffusion_diffquery_Method.php
+++ b/src/applications/diffusion/conduit/ConduitAPI_diffusion_diffquery_Method.php
@@ -168,7 +168,7 @@
$drequest,
'diffusion.lastmodifiedquery',
array(
- 'paths' => array($path => $drequest->getCommit()),
+ 'paths' => array($path => $drequest->getStableCommit()),
));
$this->effectiveCommit = idx($result, $path);
@@ -199,10 +199,10 @@
if (!$effective_commit) {
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();
if (!$raw_diff) {
return $this->getEmptyResult(2);
diff --git a/src/applications/diffusion/controller/DiffusionChangeController.php b/src/applications/diffusion/controller/DiffusionChangeController.php
--- a/src/applications/diffusion/controller/DiffusionChangeController.php
+++ b/src/applications/diffusion/controller/DiffusionChangeController.php
@@ -18,7 +18,9 @@
'commit' => $drequest->getCommit(),
'path' => $drequest->getPath(),
));
- $drequest->setCommit($data['effectiveCommit']);
+
+ $drequest->updateSymbolicCommit($data['effectiveCommit']);
+
$raw_changes = ArcanistDiffChange::newFromConduit($data['changes']);
$diff = DifferentialDiff::newFromRawChanges($raw_changes);
$changesets = $diff->getChangesets();
@@ -31,7 +33,6 @@
$repository = $drequest->getRepository();
$callsign = $repository->getCallsign();
- $commit = $drequest->getSymbolicCommit();
$changesets = array(
0 => $changeset,
);
diff --git a/src/applications/diffusion/controller/DiffusionDiffController.php b/src/applications/diffusion/controller/DiffusionDiffController.php
--- a/src/applications/diffusion/controller/DiffusionDiffController.php
+++ b/src/applications/diffusion/controller/DiffusionDiffController.php
@@ -51,7 +51,7 @@
array(
'commit' => $drequest->getCommit(),
'path' => $drequest->getPath()));
- $drequest->setCommit($data['effectiveCommit']);
+ $drequest->updateSymbolicCommit($data['effectiveCommit']);
$raw_changes = ArcanistDiffChange::newFromConduit($data['changes']);
$diff = DifferentialDiff::newFromRawChanges($raw_changes);
$changesets = $diff->getChangesets();
diff --git a/src/applications/diffusion/controller/DiffusionHistoryController.php b/src/applications/diffusion/controller/DiffusionHistoryController.php
--- a/src/applications/diffusion/controller/DiffusionHistoryController.php
+++ b/src/applications/diffusion/controller/DiffusionHistoryController.php
@@ -152,7 +152,7 @@
->setUser($viewer)
->setActionList($actions);
- $stable_commit = $drequest->getStableCommitName();
+ $stable_commit = $drequest->getStableCommit();
$callsign = $drequest->getRepository()->getCallsign();
$view->addProperty(
diff --git a/src/applications/diffusion/query/rawdiff/DiffusionGitRawDiffQuery.php b/src/applications/diffusion/query/rawdiff/DiffusionGitRawDiffQuery.php
--- a/src/applications/diffusion/query/rawdiff/DiffusionGitRawDiffQuery.php
+++ b/src/applications/diffusion/query/rawdiff/DiffusionGitRawDiffQuery.php
@@ -6,7 +6,7 @@
$drequest = $this->getRequest();
$repository = $drequest->getRepository();
- $commit = $drequest->getCommit();
+ $commit = $this->getAnchorCommit();
$options = array(
'-M',
diff --git a/src/applications/diffusion/query/rawdiff/DiffusionMercurialRawDiffQuery.php b/src/applications/diffusion/query/rawdiff/DiffusionMercurialRawDiffQuery.php
--- a/src/applications/diffusion/query/rawdiff/DiffusionMercurialRawDiffQuery.php
+++ b/src/applications/diffusion/query/rawdiff/DiffusionMercurialRawDiffQuery.php
@@ -10,7 +10,7 @@
$drequest = $this->getRequest();
$repository = $drequest->getRepository();
- $commit = $drequest->getCommit();
+ $commit = $this->getAnchorCommit();
// If there's no path, get the entire raw diff.
$path = nonempty($drequest->getPath(), '.');
diff --git a/src/applications/diffusion/query/rawdiff/DiffusionRawDiffQuery.php b/src/applications/diffusion/query/rawdiff/DiffusionRawDiffQuery.php
--- a/src/applications/diffusion/query/rawdiff/DiffusionRawDiffQuery.php
+++ b/src/applications/diffusion/query/rawdiff/DiffusionRawDiffQuery.php
@@ -2,9 +2,9 @@
abstract class DiffusionRawDiffQuery extends DiffusionQuery {
- private $request;
private $timeout;
private $linesOfContext = 65535;
+ private $anchorCommit;
private $againstCommit;
private $byteLimit;
@@ -53,6 +53,19 @@
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) {
if ($this->getTimeout()) {
$future->setTimeout($this->getTimeout());
diff --git a/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php b/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php
--- a/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php
+++ b/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php
@@ -6,7 +6,7 @@
$drequest = $this->getRequest();
$repository = $drequest->getRepository();
- $commit = $drequest->getCommit();
+ $commit = $this->getAnchorCommit();
$arc_root = phutil_get_library_root('arcanist');
$against = $this->getAgainstCommit();
diff --git a/src/applications/diffusion/request/DiffusionRequest.php b/src/applications/diffusion/request/DiffusionRequest.php
--- a/src/applications/diffusion/request/DiffusionRequest.php
+++ b/src/applications/diffusion/request/DiffusionRequest.php
@@ -12,7 +12,6 @@
protected $callsign;
protected $path;
protected $line;
- protected $commit;
protected $branch;
protected $lint;
@@ -241,11 +240,6 @@
// TODO: Probably remove all of this.
- // Required for sketchy sins that `diffusion.diffquery` commits.
- if ($this->commit) {
- return $this->commit;
- }
-
if ($this->getSymbolicCommit() !== null) {
return $this->getSymbolicCommit();
}
@@ -273,6 +267,20 @@
/**
+ * 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
* request.
*
@@ -380,11 +388,6 @@
return $this->repositoryCommitData;
}
- public function setCommit($commit) {
- $this->commit = $commit;
- return $this;
- }
-
/* -( Managing Diffusion URIs )-------------------------------------------- */

File Metadata

Mime Type
text/plain
Expires
Mar 21 2025, 6:13 AM (6 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7689437
Default Alt Text
D9099.id21635.diff (7 KB)

Event Timeline