diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2022-06-16 23:47:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-16 23:47:44 +0800 |
commit | 157b4057531b99b2d3b5c086f385c830aa38354f (patch) | |
tree | 5a7f066be290cefe174b7f5ab5f48f478921a226 /services | |
parent | 70ce051f1a7e266dccdd7cfd42f88a2570448770 (diff) | |
download | gitea-157b4057531b99b2d3b5c086f385c830aa38354f.tar.gz gitea-157b4057531b99b2d3b5c086f385c830aa38354f.zip |
Remove legacy git code (ver < 2.0), fine tune markup tests (#19930)
* clean git support for ver < 2.0
* fine tune tests for markup (which requires git module)
* remove unnecessary comments
* try to fix tests
* try test again
* use const for GitVersionRequired instead of var
* try to fix integration test
* Refactor CheckAttributeReader to make a *git.Repository version
* update document for commit signing with Gitea's internal gitconfig
* update document for commit signing with Gitea's internal gitconfig
Co-authored-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'services')
-rw-r--r-- | services/gitdiff/gitdiff.go | 33 | ||||
-rw-r--r-- | services/pull/merge.go | 27 | ||||
-rw-r--r-- | services/repository/files/temp_repo.go | 49 |
3 files changed, 34 insertions, 75 deletions
diff --git a/services/gitdiff/gitdiff.go b/services/gitdiff/gitdiff.go index 97daadbc67..37dc0e114d 100644 --- a/services/gitdiff/gitdiff.go +++ b/services/gitdiff/gitdiff.go @@ -1417,37 +1417,8 @@ func GetDiff(gitRepo *git.Repository, opts *DiffOptions, files ...string) (*Diff } diff.Start = opts.SkipTo - var checker *git.CheckAttributeReader - - if git.CheckGitVersionAtLeast("1.7.8") == nil { - indexFilename, worktree, deleteTemporaryFile, err := gitRepo.ReadTreeToTemporaryIndex(opts.AfterCommitID) - if err == nil { - defer deleteTemporaryFile() - - checker = &git.CheckAttributeReader{ - Attributes: []string{"linguist-vendored", "linguist-generated", "linguist-language", "gitlab-language"}, - Repo: gitRepo, - IndexFile: indexFilename, - WorkTree: worktree, - } - ctx, cancel := context.WithCancel(gitRepo.Ctx) - if err := checker.Init(ctx); err != nil { - log.Error("Unable to open checker for %s. Error: %v", opts.AfterCommitID, err) - } else { - go func() { - err := checker.Run() - if err != nil && err != ctx.Err() { - log.Error("Unable to open checker for %s. Error: %v", opts.AfterCommitID, err) - } - cancel() - }() - } - defer func() { - _ = checker.Close() - cancel() - }() - } - } + checker, deferable := gitRepo.CheckAttributeReader(opts.AfterCommitID) + defer deferable() for _, diffFile := range diff.Files { diff --git a/services/pull/merge.go b/services/pull/merge.go index aff800a1b6..e8bb3a1cdd 100644 --- a/services/pull/merge.go +++ b/services/pull/merge.go @@ -276,15 +276,8 @@ func rawMerge(ctx context.Context, pr *issues_model.PullRequest, doer *user_mode return "", fmt.Errorf("Unable to write .git/info/sparse-checkout file in tmpBasePath: %v", err) } - var gitConfigCommand func() *git.Command - if git.CheckGitVersionAtLeast("1.8.0") == nil { - gitConfigCommand = func() *git.Command { - return git.NewCommand(ctx, "config", "--local") - } - } else { - gitConfigCommand = func() *git.Command { - return git.NewCommand(ctx, "config") - } + gitConfigCommand := func() *git.Command { + return git.NewCommand(ctx, "config", "--local") } // Switch off LFS process (set required, clean and smudge here also) @@ -366,16 +359,14 @@ func rawMerge(ctx context.Context, pr *issues_model.PullRequest, doer *user_mode // Determine if we should sign signArg := "" - if git.CheckGitVersionAtLeast("1.7.9") == nil { - sign, keyID, signer, _ := asymkey_service.SignMerge(ctx, pr, doer, tmpBasePath, "HEAD", trackingBranch) - if sign { - signArg = "-S" + keyID - if pr.BaseRepo.GetTrustModel() == repo_model.CommitterTrustModel || pr.BaseRepo.GetTrustModel() == repo_model.CollaboratorCommitterTrustModel { - committer = signer - } - } else if git.CheckGitVersionAtLeast("2.0.0") == nil { - signArg = "--no-gpg-sign" + sign, keyID, signer, _ := asymkey_service.SignMerge(ctx, pr, doer, tmpBasePath, "HEAD", trackingBranch) + if sign { + signArg = "-S" + keyID + if pr.BaseRepo.GetTrustModel() == repo_model.CommitterTrustModel || pr.BaseRepo.GetTrustModel() == repo_model.CollaboratorCommitterTrustModel { + committer = signer } + } else { + signArg = "--no-gpg-sign" } commitTimeStr := time.Now().Format(time.RFC3339) diff --git a/services/repository/files/temp_repo.go b/services/repository/files/temp_repo.go index 97a80a96bd..1e60d55613 100644 --- a/services/repository/files/temp_repo.go +++ b/services/repository/files/temp_repo.go @@ -248,34 +248,31 @@ func (t *TemporaryUploadRepository) CommitTreeWithDate(parent string, author, co args = []string{"commit-tree", treeHash} } - // Determine if we should sign - if git.CheckGitVersionAtLeast("1.7.9") == nil { - var sign bool - var keyID string - var signer *git.Signature - if parent != "" { - sign, keyID, signer, _ = asymkey_service.SignCRUDAction(t.ctx, t.repo.RepoPath(), author, t.basePath, parent) - } else { - sign, keyID, signer, _ = asymkey_service.SignInitialCommit(t.ctx, t.repo.RepoPath(), author) - } - if sign { - args = append(args, "-S"+keyID) - if t.repo.GetTrustModel() == repo_model.CommitterTrustModel || t.repo.GetTrustModel() == repo_model.CollaboratorCommitterTrustModel { - if committerSig.Name != authorSig.Name || committerSig.Email != authorSig.Email { - // Add trailers - _, _ = messageBytes.WriteString("\n") - _, _ = messageBytes.WriteString("Co-authored-by: ") - _, _ = messageBytes.WriteString(committerSig.String()) - _, _ = messageBytes.WriteString("\n") - _, _ = messageBytes.WriteString("Co-committed-by: ") - _, _ = messageBytes.WriteString(committerSig.String()) - _, _ = messageBytes.WriteString("\n") - } - committerSig = signer + var sign bool + var keyID string + var signer *git.Signature + if parent != "" { + sign, keyID, signer, _ = asymkey_service.SignCRUDAction(t.ctx, t.repo.RepoPath(), author, t.basePath, parent) + } else { + sign, keyID, signer, _ = asymkey_service.SignInitialCommit(t.ctx, t.repo.RepoPath(), author) + } + if sign { + args = append(args, "-S"+keyID) + if t.repo.GetTrustModel() == repo_model.CommitterTrustModel || t.repo.GetTrustModel() == repo_model.CollaboratorCommitterTrustModel { + if committerSig.Name != authorSig.Name || committerSig.Email != authorSig.Email { + // Add trailers + _, _ = messageBytes.WriteString("\n") + _, _ = messageBytes.WriteString("Co-authored-by: ") + _, _ = messageBytes.WriteString(committerSig.String()) + _, _ = messageBytes.WriteString("\n") + _, _ = messageBytes.WriteString("Co-committed-by: ") + _, _ = messageBytes.WriteString(committerSig.String()) + _, _ = messageBytes.WriteString("\n") } - } else if git.CheckGitVersionAtLeast("2.0.0") == nil { - args = append(args, "--no-gpg-sign") + committerSig = signer } + } else { + args = append(args, "--no-gpg-sign") } if signoff { |