ensureGitVersion method

Future<void> ensureGitVersion(
  1. String minimumVersion
)

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,
    );
  }
}