fingerprint static method
Implementation
static String fingerprint(File config, String operation) {
final bytes = <int>[
...config.readAsBytesSync(),
...utf8.encode('\noperation=$operation'),
];
try {
final result = Process.runSync(
'git',
['rev-parse', 'HEAD'],
workingDirectory: config.absolute.parent.path,
);
if (result.exitCode == 0) {
final revision = result.stdout.toString().trim();
if (revision.isNotEmpty) bytes.addAll(utf8.encode('\ngit=$revision'));
}
} on ProcessException {
// A config outside a Git checkout remains resumable using its content.
}
return sha256.convert(bytes).toString();
}