1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-12-22 13:30:54 +01:00

Don't lint symlinks by default.

Summary: Fixes T5300. Currently, if a dead symbolic link is linted, all kinds of errors will be thrown by most linters because they will try to read the (non-existent) file contents. Instead, let's not lint symbolic links by default. In the case that the target of a symbolic link is inside the working copy, then it should be being linted anyway.

Test Plan: Created a symbolic link and verified that it wasn't linted (by any linter other than the `ArcanistFilenameLinter`).

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Maniphest Tasks: T5300

Differential Revision: https://secure.phabricator.com/D9448
This commit is contained in:
Joshua Spence 2014-06-10 18:20:59 -07:00 committed by epriestley
parent ff1915ecff
commit 02e3905cf5
3 changed files with 16 additions and 0 deletions

View file

@ -190,6 +190,10 @@ abstract class ArcanistLintEngine {
return ArcanistDiffUtils::isHeuristicBinaryFile($data);
}
final public function isSymbolicLink($path) {
return is_link($this->getFilePathOnDisk($path));
}
final public function getFilePathOnDisk($path) {
return Filesystem::resolvePath(
$path,

View file

@ -49,4 +49,8 @@ final class ArcanistFilenameLinter extends ArcanistLinter {
return true;
}
public function shouldLintSymbolicLinks() {
return true;
}
}

View file

@ -148,6 +148,10 @@ abstract class ArcanistLinter {
continue;
}
if (!$this->shouldLintSymbolicLinks() && $engine->isSymbolicLink($path)) {
continue;
}
$keep[] = $path;
}
@ -442,6 +446,10 @@ abstract class ArcanistLinter {
return false;
}
protected function shouldLintSymbolicLinks() {
return false;
}
/**
* Map a configuration lint code to an `arc` lint code. Primarily, this is
* intended for validation, but can also be used to normalize case or