fix: improve file tracking in MemberStatsComputer

- Updated the handling of bash lines to ensure unique file tracking by using a Set to eliminate duplicates.
- Added logic to attribute per-file line changes only when a single file is touched, enhancing accuracy in line addition and removal reporting.
This commit is contained in:
iliya 2026-02-26 21:50:23 +02:00
parent a9e0416251
commit ca710b143b

View file

@ -271,9 +271,14 @@ export class MemberStatsComputer {
const bashLines = estimateBashLinesChanged(cmd);
linesAdded += bashLines.added;
linesRemoved += bashLines.removed;
for (const f of bashLines.files) {
const touchedFiles = [...new Set(bashLines.files)];
for (const f of touchedFiles) {
trackFile(f);
addFileLines(f, bashLines.added, bashLines.removed);
}
// Only attribute per-file lines when a single file is touched;
// with multiple files we can't determine per-file distribution
if (touchedFiles.length === 1) {
addFileLines(touchedFiles[0], bashLines.added, bashLines.removed);
}
}
}