pestphp/pest · error · MissingDependency
The [Filter by dirty files] feature requires [git]. Please i
Error message
The [Filter by dirty files] feature requires [git]. Please install it and try again.
What it means
Error "The [Filter by dirty files] feature requires [git]. Please install it and try again." thrown in pestphp/pest.
Source
Thrown at src/TestCaseFilters/GitDirtyTestCaseFilter.php:52
assert(is_array($this->changedFiles));
$relativePath = str_replace($this->projectRoot, '', $testCaseFilename);
$relativePath = str_replace(DIRECTORY_SEPARATOR, '/', $relativePath);
if (str_starts_with($relativePath, '/')) {
$relativePath = substr($relativePath, 1);
}
return in_array($relativePath, $this->changedFiles, true);
}
private function loadChangedFiles(): void
{
$status = new Git(timeout: 60.0)->raw(['status', '--short', '--', '*.php']);
if ($status === null) {
throw new MissingDependency('Filter by dirty files', 'git');
}
$output = preg_split('/\R+/', $status, flags: PREG_SPLIT_NO_EMPTY);
assert(is_array($output));
$dirtyFiles = [];
foreach ($output as $dirtyFile) {
$dirtyFiles[substr($dirtyFile, 3)] = trim(substr($dirtyFile, 0, 3));
}
$dirtyFiles = array_filter($dirtyFiles, fn (string $status): bool => $status !== 'D');
$dirtyFiles = array_map(
fn (string $file, string $status): string => in_array($status, ['R', 'RM'], true)
? explode(' -> ', $file)[1]
: $file, array_keys($dirtyFiles), $dirtyFiles,
);View on GitHub (pinned to 1af74a215c)
When it happens
Trigger: Thrown at src/TestCaseFilters/GitDirtyTestCaseFilter.php:52 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of pestphp/pest@1af74a215c (2026-08-21).
Data as JSON: /api/errors/ec1d22731dd22a9a.
Report an issue: GitHub.