Page MenuHomec4science

DiffusionLowLevelMercurialPathsQuery.php
No OneTemporary

File Metadata

Created
Sun, Jul 14, 23:51

DiffusionLowLevelMercurialPathsQuery.php

<?php
/**
* Execute and parse a low-level Mercurial paths query using `hg locate`.
*/
final class DiffusionLowLevelMercurialPathsQuery
extends DiffusionLowLevelQuery {
private $commit;
private $path;
public function withCommit($commit) {
$this->commit = $commit;
return $this;
}
public function withPath($path) {
$this->path = $path;
return $this;
}
protected function executeQuery() {
$repository = $this->getRepository();
$path = $this->path;
$commit = $this->commit;
$hg_paths_command = 'locate --print0 --rev %s -I %s';
$hg_version = PhabricatorRepositoryVersion::getMercurialVersion();
if (PhabricatorRepositoryVersion::isMercurialFilesCommandAvailable(
$hg_version)) {
$hg_paths_command = 'files --print0 --rev %s -I %s';
}
$match_against = trim($path, '/');
$prefix = trim('./'.$match_against, '/');
list($entire_manifest) = $repository->execxLocalCommand(
$hg_paths_command,
hgsprintf('%s', $commit),
$prefix);
return explode("\0", $entire_manifest);
}
}

Event Timeline