go-version constraints ignore pre-releases (#13234)

Go-version constraints ignore pre-releases.

Rather than change the library further this PR simply changes
the git version comparison to use simple version compare ignoring the
issue of pre-releases.

Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
zeripath 2020-10-21 16:42:08 +01:00 committed by GitHub
parent 53359b1861
commit de6e427a01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 25 additions and 25 deletions

View file

@ -150,13 +150,13 @@ func Init(ctx context.Context) error {
return err
}
if CheckGitVersionConstraint(">= 2.10") == nil {
if CheckGitVersionAtLeast("2.10") == nil {
if err := checkAndSetConfig("receive.advertisePushOptions", "true", true); err != nil {
return err
}
}
if CheckGitVersionConstraint(">= 2.18") == nil {
if CheckGitVersionAtLeast("2.18") == nil {
if err := checkAndSetConfig("core.commitGraph", "true", true); err != nil {
return err
}
@ -173,17 +173,17 @@ func Init(ctx context.Context) error {
return nil
}
// CheckGitVersionConstraint check version constrain against local installed git version
func CheckGitVersionConstraint(constraint string) error {
// CheckGitVersionAtLeast check git version is at least the constraint version
func CheckGitVersionAtLeast(atLeast string) error {
if err := LoadGitVersion(); err != nil {
return err
}
check, err := version.NewConstraint(constraint)
atLeastVersion, err := version.NewVersion(atLeast)
if err != nil {
return err
}
if !check.Check(gitVersion) {
return fmt.Errorf("installed git binary %s does not satisfy version constraint %s", gitVersion.Original(), constraint)
if gitVersion.Compare(atLeastVersion) < 0 {
return fmt.Errorf("installed git binary version %s is not at least %s", gitVersion.Original(), atLeast)
}
return nil
}