diffFiles method
Implementation
Future<List<String>> diffFiles({
required List<String> diffArgs,
required String diffFilters,
}) async {
final result = await process.run('git', [
'diff',
...diffArgs,
if (diffFilters.isNotEmpty) '--diff-filter=$diffFilters',
'--name-only',
'-z',
]);
final out = switch (result.stdout) {
final String out => out.trim(),
final Future<String> out => (await out).trim(),
};
final files = out
.split('\x00')
.where((element) => element.isNotEmpty)
.toList();
if (remoteName case final String remoteName
when files.isEmpty && diffArgs.contains('@{u}')) {
final currentBranch = await getCurrentBranch();
final upstream = '$remoteName/$currentBranch';
return diffFiles(
diffArgs: [
for (final arg in diffArgs)
if (arg == '@{u}') upstream else arg,
],
diffFilters: diffFilters,
);
}
return files;
}