Page MenuHomePhabricator

D14239.diff
No OneTemporary

D14239.diff

diff --git a/src/applications/diffusion/conduit/DiffusionExistsQueryConduitAPIMethod.php b/src/applications/diffusion/conduit/DiffusionExistsQueryConduitAPIMethod.php
--- a/src/applications/diffusion/conduit/DiffusionExistsQueryConduitAPIMethod.php
+++ b/src/applications/diffusion/conduit/DiffusionExistsQueryConduitAPIMethod.php
@@ -33,16 +33,13 @@
protected function getSVNResult(ConduitAPIRequest $request) {
$repository = $this->getDiffusionRequest()->getRepository();
$commit = $request->getValue('commit');
- list($info) = $repository->execxRemoteCommand(
- 'info %s',
- $repository->getRemoteURI());
- $exists = false;
- $matches = null;
- if (preg_match('/^Revision: (\d+)$/m', $info, $matches)) {
- $base_revision = $matches[1];
- $exists = $base_revision >= $commit;
- }
- return $exists;
+
+ $refs = id(new DiffusionCachedResolveRefsQuery())
+ ->setRepository($repository)
+ ->withRefs(array($commit))
+ ->execute();
+
+ return (bool)$refs;
}
protected function getMercurialResult(ConduitAPIRequest $request) {
diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php
--- a/src/applications/diffusion/controller/DiffusionCommitController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitController.php
@@ -1136,14 +1136,17 @@
$merge_limit = $this->getMergeDisplayLimit();
try {
- $merges = $this->callConduitWithDiffusionRequest(
- 'diffusion.mergedcommitsquery',
- array(
- 'commit' => $commit,
- 'limit' => $merge_limit + 1,
- ));
-
- $this->commitMerges = DiffusionPathChange::newFromConduit($merges);
+ if ($repository->isSVN()) {
+ $this->commitMerges = array();
+ } else {
+ $merges = $this->callConduitWithDiffusionRequest(
+ 'diffusion.mergedcommitsquery',
+ array(
+ 'commit' => $commit,
+ 'limit' => $merge_limit + 1,
+ ));
+ $this->commitMerges = DiffusionPathChange::newFromConduit($merges);
+ }
} catch (Exception $ex) {
$this->commitMerges = false;
$exceptions[] = $ex;
diff --git a/src/applications/diffusion/query/lowlevel/DiffusionLowLevelParentsQuery.php b/src/applications/diffusion/query/lowlevel/DiffusionLowLevelParentsQuery.php
--- a/src/applications/diffusion/query/lowlevel/DiffusionLowLevelParentsQuery.php
+++ b/src/applications/diffusion/query/lowlevel/DiffusionLowLevelParentsQuery.php
@@ -70,7 +70,21 @@
}
private function loadSubversionParents() {
- $n = (int)$this->identifier;
+ $repository = $this->getRepository();
+ $identifier = $this->identifier;
+
+ $refs = id(new DiffusionCachedResolveRefsQuery())
+ ->setRepository($repository)
+ ->withRefs(array($identifier))
+ ->execute();
+ if (!$refs) {
+ throw new Exception(
+ pht(
+ 'No commit "%s" in this repository.',
+ $identifier));
+ }
+
+ $n = (int)$identifier;
if ($n > 1) {
$ids = array($n - 1);
} else {

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 10, 9:21 AM (2 w, 1 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7422828
Default Alt Text
D14239.diff (3 KB)

Event Timeline