Fix paths when running clang-tidy on git diffs (#161496)
The working directory was `engine/src/flutter` but all of the file names already had those parent directories on them so we'd be trying to find build commands for `engine/src/flutter/engine/src/flutter`. This change tells the git commands to make the file names relative to the working directory (which is already `engine/src/flutter`). Someone more familiar with the `--lint-head` option should double check its operation since I wasn't sure exactly what it was supposed to do, but the list of files it generated looked correct.
This commit is contained in:
parent
0d906f5ecf
commit
366ed7f972
@ -86,7 +86,8 @@ final class GitRepo {
|
|||||||
'git',
|
'git',
|
||||||
'diff',
|
'diff',
|
||||||
'--name-only',
|
'--name-only',
|
||||||
'--diff-filter=ACMRT',
|
'--diff-filter=ACMRT', // Added, copied, modified, renamed, or type-changed.
|
||||||
|
'--relative', // _gitOutputToList will prepend the CWD so we don't want duplicate sub-paths
|
||||||
mergeBase,
|
mergeBase,
|
||||||
]);
|
]);
|
||||||
return _gitOutputToList(masterResult);
|
return _gitOutputToList(masterResult);
|
||||||
@ -111,6 +112,7 @@ final class GitRepo {
|
|||||||
'--no-commit-id',
|
'--no-commit-id',
|
||||||
'--name-only',
|
'--name-only',
|
||||||
'--diff-filter=ACMRT', // Added, copied, modified, renamed, or type-changed.
|
'--diff-filter=ACMRT', // Added, copied, modified, renamed, or type-changed.
|
||||||
|
'--relative', // _gitOutputToList will prepend the CWD so we don't want duplicate sub-paths
|
||||||
'-r',
|
'-r',
|
||||||
'HEAD',
|
'HEAD',
|
||||||
]);
|
]);
|
||||||
|
@ -26,7 +26,8 @@ void main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Succeed calling "git diff --name-only --diff-filter=ACMRT fake-sha-hash".
|
// Succeed calling "git diff --name-only --diff-filter=ACMRT fake-sha-hash".
|
||||||
if (command.join(' ') == 'git diff --name-only --diff-filter=ACMRT $fakeShaHash') {
|
if (command.join(' ') ==
|
||||||
|
'git diff --name-only --diff-filter=ACMRT --relative $fakeShaHash') {
|
||||||
return FakeProcess(stdout: 'file1\nfile2');
|
return FakeProcess(stdout: 'file1\nfile2');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +63,8 @@ void main() {
|
|||||||
return FakeProcess();
|
return FakeProcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (command.join(' ') == 'git diff --name-only --diff-filter=ACMRT $fakeShaHash') {
|
if (command.join(' ') ==
|
||||||
|
'git diff --name-only --diff-filter=ACMRT --relative $fakeShaHash') {
|
||||||
return FakeProcess(stdout: 'file1\nfile2');
|
return FakeProcess(stdout: 'file1\nfile2');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +93,7 @@ void main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (command.join(' ') ==
|
if (command.join(' ') ==
|
||||||
'git diff-tree --no-commit-id --name-only --diff-filter=ACMRT -r HEAD') {
|
'git diff-tree --no-commit-id --name-only --diff-filter=ACMRT --relative -r HEAD') {
|
||||||
return FakeProcess(stdout: 'file1\nfile2');
|
return FakeProcess(stdout: 'file1\nfile2');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +122,7 @@ void main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (command.join(' ') ==
|
if (command.join(' ') ==
|
||||||
'git diff-tree --no-commit-id --name-only --diff-filter=ACMRT -r HEAD') {
|
'git diff-tree --no-commit-id --name-only --diff-filter=ACMRT --relative -r HEAD') {
|
||||||
return FakeProcess(stdout: 'file1\nfile2');
|
return FakeProcess(stdout: 'file1\nfile2');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,7 +166,8 @@ void main() {
|
|||||||
return FakeProcess();
|
return FakeProcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (command.join(' ') == 'git diff --name-only --diff-filter=ACMRT $fakeShaHash') {
|
if (command.join(' ') ==
|
||||||
|
'git diff --name-only --diff-filter=ACMRT --relative $fakeShaHash') {
|
||||||
return FakeProcess(stdout: 'file1\nfile2');
|
return FakeProcess(stdout: 'file1\nfile2');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user