Skip to content

Commit

Permalink
go-version constraints ignore pre-releases
Browse files Browse the repository at this point in the history
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.

PR for this go-gitea#13234

Signed-off-by: Andrew Thornton <[email protected]>
Signed-off-by: wULLSnpAXbWZGYDYyhWTKKspEQoaYxXyhoisqHf <[email protected]>
  • Loading branch information
zeripath authored and wULLSnpAXbWZGYDYyhWTKKspEQoaYxXyhoisqHf committed Oct 21, 2020
1 parent 53359b1 commit 7cbfce5
Show file tree
Hide file tree
Showing 12 changed files with 25 additions and 25 deletions.
2 changes: 1 addition & 1 deletion modules/git/commit.go
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ func (c *Commit) GetBranchName() (string, error) {
args := []string{
"name-rev",
}
if CheckGitVersionConstraint(">= 2.13.0") == nil {
if CheckGitVersionAtLeast("2.13.0") == nil {
args = append(args, "--exclude", "refs/tags/*")
}
args = append(args, "--name-only", "--no-undefined", c.ID.String())
Expand Down
14 changes: 7 additions & 7 deletions modules/git/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion modules/git/repo_attribute.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func (repo *Repository) CheckAttribute(opts CheckAttributeOpts) (map[string]map[
}

// git check-attr --cached first appears in git 1.7.8
if opts.CachedOnly && CheckGitVersionConstraint(">= 1.7.8") == nil {
if opts.CachedOnly && CheckGitVersionAtLeast("1.7.8") == nil {
cmdArgs = append(cmdArgs, "--cached")
}

Expand Down
2 changes: 1 addition & 1 deletion modules/git/repo_commit.go
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ func (repo *Repository) getCommitsBeforeLimit(id SHA1, num int) (*list.List, err
}

func (repo *Repository) getBranches(commit *Commit, limit int) ([]string, error) {
if CheckGitVersionConstraint(">= 2.7.0") == nil {
if CheckGitVersionAtLeast("2.7.0") == nil {
stdout, err := NewCommand("for-each-ref", "--count="+strconv.Itoa(limit), "--format=%(refname:strip=2)", "--contains", commit.ID.String(), BranchPrefix).RunInDir(repo.Path)
if err != nil {
return nil, err
Expand Down
4 changes: 2 additions & 2 deletions modules/git/repo_tree.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,11 @@ func (repo *Repository) CommitTree(author *Signature, committer *Signature, tree
_, _ = messageBytes.WriteString(opts.Message)
_, _ = messageBytes.WriteString("\n")

if CheckGitVersionConstraint(">= 1.7.9") == nil && (opts.KeyID != "" || opts.AlwaysSign) {
if CheckGitVersionAtLeast("1.7.9") == nil && (opts.KeyID != "" || opts.AlwaysSign) {
cmd.AddArguments(fmt.Sprintf("-S%s", opts.KeyID))
}

if CheckGitVersionConstraint(">= 2.0.0") == nil && opts.NoGPGSign {
if CheckGitVersionAtLeast("2.0.0") == nil && opts.NoGPGSign {
cmd.AddArguments("--no-gpg-sign")
}

Expand Down
6 changes: 3 additions & 3 deletions modules/repofiles/temp_repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ func (t *TemporaryUploadRepository) CommitTreeWithDate(author, committer *models
args := []string{"commit-tree", treeHash, "-p", "HEAD"}

// Determine if we should sign
if git.CheckGitVersionConstraint(">= 1.7.9") == nil {
if git.CheckGitVersionAtLeast("1.7.9") == nil {
sign, keyID, signer, _ := t.repo.SignCRUDAction(author, t.basePath, "HEAD")
if sign {
args = append(args, "-S"+keyID)
Expand All @@ -231,7 +231,7 @@ func (t *TemporaryUploadRepository) CommitTreeWithDate(author, committer *models
}
committerSig = signer
}
} else if git.CheckGitVersionConstraint(">= 2.0.0") == nil {
} else if git.CheckGitVersionAtLeast("2.0.0") == nil {
args = append(args, "--no-gpg-sign")
}
}
Expand Down Expand Up @@ -335,7 +335,7 @@ func (t *TemporaryUploadRepository) CheckAttribute(attribute string, args ...str
cmdArgs := []string{"check-attr", "-z", attribute}

// git check-attr --cached first appears in git 1.7.8
if git.CheckGitVersionConstraint(">= 1.7.8") == nil {
if git.CheckGitVersionAtLeast("1.7.8") == nil {
cmdArgs = append(cmdArgs, "--cached")
}
cmdArgs = append(cmdArgs, "--")
Expand Down
4 changes: 2 additions & 2 deletions modules/repository/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ func initRepoCommit(tmpPath string, repo *models.Repository, u *models.User, def
"-m", "Initial commit",
}

if git.CheckGitVersionConstraint(">= 1.7.9") == nil {
if git.CheckGitVersionAtLeast("1.7.9") == nil {
sign, keyID, signer, _ := models.SignInitialCommit(tmpPath, u)
if sign {
args = append(args, "-S"+keyID)
Expand All @@ -141,7 +141,7 @@ func initRepoCommit(tmpPath string, repo *models.Repository, u *models.User, def
committerName = signer.Name
committerEmail = signer.Email
}
} else if git.CheckGitVersionConstraint(">= 2.0.0") == nil {
} else if git.CheckGitVersionAtLeast("2.0.0") == nil {
args = append(args, "--no-gpg-sign")
}
}
Expand Down
4 changes: 2 additions & 2 deletions modules/setting/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,15 @@ func newGit() {
log.Fatal("Error retrieving git version: %v", err)
}

if git.CheckGitVersionConstraint(">= 2.9") == nil {
if git.CheckGitVersionAtLeast("2.9") == nil {
// Explicitly disable credential helper, otherwise Git credentials might leak
git.GlobalCommandArgs = append(git.GlobalCommandArgs, "-c", "credential.helper=")
}

var format = "Git Version: %s"
var args = []interface{}{version.Original()}
// Since git wire protocol has been released from git v2.18
if Git.EnableAutoGitWireProtocol && git.CheckGitVersionConstraint(">= 2.18") == nil {
if Git.EnableAutoGitWireProtocol && git.CheckGitVersionAtLeast("2.18") == nil {
git.GlobalCommandArgs = append(git.GlobalCommandArgs, "-c", "protocol.version=2")
format += ", Wire Protocol %s Enabled"
args = append(args, "Version 2") // for focus color
Expand Down
2 changes: 1 addition & 1 deletion modules/setting/lfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ func CheckLFSVersion() {
log.Fatal("Error retrieving git version: %v", err)
}

if git.CheckGitVersionConstraint(">= 2.1.2") != nil {
if git.CheckGitVersionAtLeast("2.1.2") != nil {
LFS.StartServer = false
log.Error("LFS server support needs at least Git v2.1.2")
} else {
Expand Down
2 changes: 1 addition & 1 deletion routers/repo/lfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -584,7 +584,7 @@ func LFSPointerFiles(ctx *context.Context) {
go createPointerResultsFromCatFileBatch(catFileBatchReader, &wg, pointerChan, ctx.Repo.Repository, ctx.User)
go pipeline.CatFileBatch(shasToBatchReader, catFileBatchWriter, &wg, basePath)
go pipeline.BlobsLessThan1024FromCatFileBatchCheck(catFileCheckReader, shasToBatchWriter, &wg)
if git.CheckGitVersionConstraint(">= 2.6.0") != nil {
if git.CheckGitVersionAtLeast("2.6.0") != nil {
revListReader, revListWriter := io.Pipe()
shasToCheckReader, shasToCheckWriter := io.Pipe()
wg.Add(2)
Expand Down
2 changes: 1 addition & 1 deletion services/mirror/mirror.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func remoteAddress(repoPath string) (string, error) {
if err != nil {
return "", err
}
if git.CheckGitVersionConstraint(">= 2.7") == nil {
if git.CheckGitVersionAtLeast("2.7") == nil {
cmd = git.NewCommand("remote", "get-url", "origin")
} else {
cmd = git.NewCommand("config", "--get", "remote.origin.url")
Expand Down
6 changes: 3 additions & 3 deletions services/pull/merge.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ func rawMerge(pr *models.PullRequest, doer *models.User, mergeStyle models.Merge
}

var gitConfigCommand func() *git.Command
if git.CheckGitVersionConstraint(">= 1.8.0") == nil {
if git.CheckGitVersionAtLeast("1.8.0") == nil {
gitConfigCommand = func() *git.Command {
return git.NewCommand("config", "--local")
}
Expand Down Expand Up @@ -214,14 +214,14 @@ func rawMerge(pr *models.PullRequest, doer *models.User, mergeStyle models.Merge

// Determine if we should sign
signArg := ""
if git.CheckGitVersionConstraint(">= 1.7.9") == nil {
if git.CheckGitVersionAtLeast("1.7.9") == nil {
sign, keyID, signer, _ := pr.SignMerge(doer, tmpBasePath, "HEAD", trackingBranch)
if sign {
signArg = "-S" + keyID
if pr.BaseRepo.GetTrustModel() == models.CommitterTrustModel || pr.BaseRepo.GetTrustModel() == models.CollaboratorCommitterTrustModel {
committer = signer
}
} else if git.CheckGitVersionConstraint(">= 2.0.0") == nil {
} else if git.CheckGitVersionAtLeast("2.0.0") == nil {
signArg = "--no-gpg-sign"
}
}
Expand Down

0 comments on commit 7cbfce5

Please sign in to comment.