ensureGitVersion method
Ensures the installed git is at least minimumVersion, written as
major[.minor[.patch]].
Throws GitVersionException when the installed git is older,
FormatException when git --version cannot be parsed, and
ArgumentError when minimumVersion itself is malformed.
Implementation
Future<void> ensureGitVersion(String minimumVersion) async {
final String raw = await gitVersion();
final GitVersionTriple? actual = parseGitVersion(raw);
if (actual == null) {
throw FormatException('Cannot parse git version from: "$raw"', raw);
}
final GitVersionTriple? required = parseVersionConstraint(minimumVersion);
if (required == null) {
throw ArgumentError.value(
minimumVersion,
'minimumVersion',
'expected "major[.minor[.patch]]"',
);
}
if (compareGitVersions(actual, required) < 0) {
throw GitVersionException(
requiredVersion: minimumVersion,
actualVersion: raw,
);
}
}