Support an "Ancestors Of: ..." constraint in commit queries
Summary: Ref T13137. See PHI609. An install would like to filter audit requests on a particular branch, e.g. "master". This is difficult in the general case because we can not apply this constraint efficiently under every conceivable data shape, but we can do a reasonable job in most practical cases. See T13137#238822 for more detailed discussion on the approach here. This is a bit rough, but should do the job for now. Test Plan: - Filtered commits by various branches, e.g. "master"; "lfs". Saw correct-seeming results. - Stubbed out the "just list everything" path to hit the `diffusion.internal.ancestors` path, saw the same correct-seeming results. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13137 Differential Revision: https://secure.phabricator.com/D19431
This commit is contained in:
@@ -53,6 +53,10 @@ final class PhabricatorCommitSearchEngine
|
||||
$query->withUnreachable($map['unreachable']);
|
||||
}
|
||||
|
||||
if ($map['ancestorsOf']) {
|
||||
$query->withAncestorsOf($map['ancestorsOf']);
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
@@ -103,6 +107,13 @@ final class PhabricatorCommitSearchEngine
|
||||
pht(
|
||||
'Find or exclude unreachable commits which are not ancestors of '.
|
||||
'any branch, tag, or ref.')),
|
||||
id(new PhabricatorSearchStringListField())
|
||||
->setLabel(pht('Ancestors Of'))
|
||||
->setKey('ancestorsOf')
|
||||
->setDescription(
|
||||
pht(
|
||||
'Find commits which are ancestors of a particular ref, '.
|
||||
'like "master".')),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user