Skip to content

Commit

Permalink
Gitblame: fix fatal error on chdir() when basepath is set and php…
Browse files Browse the repository at this point in the history
…cs is run from subdir

The `Reporter::prepareFileReport()` method strips the `basepath` off the file name for the `$report['filename']`.

https://github.com/squizlabs/PHP_CodeSniffer/blob/276f68cc74a3e4e1855bab6d01f0089337d00ae0/src/Reporter.php#L337

While this is fine in most cases, for "blame" reports, the full path is needed.

This changes the path passed to the `getBlameContent()` method in subclasses of the `VersionControl` class to the full path, which fixes the fatal error for the `Gitblame` report (and probably similar/related errors in the `Hgblame` and the `Svnblame` reports, but I don't have any repos to test this on).

Fixes 3854
  • Loading branch information
jrfnl committed Dec 5, 2023
1 parent af7f3c2 commit a2667bc
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ The file documents changes to the PHP_CodeSniffer project.
- Thanks to Dan Wallis (@fredden) for the patch
- Fixed bug #3816 : PSR12/FileHeader: bug fix - false positives on PHP 8.2+ readonly classes
- Thanks to Juliette Reinders Folmer (@jrfnl) for the patch
- Fixed bug #3854 : Fatal error when using Gitblame report in combination with `--basepath` and running from project subdirectory
- Thanks to Juliette Reinders Folmer (@jrfnl) for the patch
- Fixed bug #3867 : Tokenizer/PHP: union type and intersection type operators were not correctly tokenized for static properties without explicit visibility
- Thanks to Juliette Reinders Folmer (@jrfnl) for the patch
- Fixed bug #3877 : Filter names can be case-sensitive. The -h help text will now display the correct case for the available filters
Expand Down
2 changes: 1 addition & 1 deletion src/Reports/VersionControl.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ abstract class VersionControl implements Report
*/
public function generateFileReport($report, File $phpcsFile, $showSources=false, $width=80)
{
$blames = $this->getBlameContent($report['filename']);
$blames = $this->getBlameContent($phpcsFile->getFilename());

$authorCache = [];
$praiseCache = [];
Expand Down

0 comments on commit a2667bc

Please sign in to comment.