summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2024-03-11 05:30:36 +0800
committerGitHub <noreply@github.com>2024-03-10 22:30:36 +0100
commit3c6fc25a77c37d50686caa495d27a31dcef7f75f (patch)
treebaee1d20d877cdfcf6c65e6784068ea86c85e17b
parent851bd18234ff3de4c603c57c3b380eb5495d8eb7 (diff)
downloadgitea-3c6fc25a77c37d50686caa495d27a31dcef7f75f.tar.gz
gitea-3c6fc25a77c37d50686caa495d27a31dcef7f75f.zip
Use repo object format name instead of detecting from git repository (#29702)
It's unnecessary to detect the repository object format from git repository. Just use the repository's object format name.
-rw-r--r--modules/indexer/code/git.go12
-rw-r--r--routers/web/repo/branch.go7
-rw-r--r--routers/web/repo/setting/webhook.go7
-rw-r--r--services/mirror/mirror_pull.go5
-rw-r--r--services/pull/pull.go2
-rw-r--r--services/release/release.go5
6 files changed, 9 insertions, 29 deletions
diff --git a/modules/indexer/code/git.go b/modules/indexer/code/git.go
index 76cd78e11e..f105d032eb 100644
--- a/modules/indexer/code/git.go
+++ b/modules/indexer/code/git.go
@@ -91,11 +91,9 @@ func genesisChanges(ctx context.Context, repo *repo_model.Repository, revision s
return nil, runErr
}
+ objectFormat := git.ObjectFormatFromName(repo.ObjectFormatName)
+
var err error
- objectFormat, err := git.GetObjectFormatOfRepo(ctx, repo.RepoPath())
- if err != nil {
- return nil, err
- }
changes.Updates, err = parseGitLsTreeOutput(objectFormat, stdout)
return &changes, err
}
@@ -174,10 +172,8 @@ func nonGenesisChanges(ctx context.Context, repo *repo_model.Repository, revisio
return nil, err
}
- objectFormat, err := git.GetObjectFormatOfRepo(ctx, repo.RepoPath())
- if err != nil {
- return nil, err
- }
+ objectFormat := git.ObjectFormatFromName(repo.ObjectFormatName)
+
changes.Updates, err = parseGitLsTreeOutput(objectFormat, lsTreeStdout)
return &changes, err
}
diff --git a/routers/web/repo/branch.go b/routers/web/repo/branch.go
index ae51f0596b..f879a98786 100644
--- a/routers/web/repo/branch.go
+++ b/routers/web/repo/branch.go
@@ -148,12 +148,7 @@ func RestoreBranchPost(ctx *context.Context) {
return
}
- objectFormat, err := git.GetObjectFormatOfRepo(ctx, ctx.Repo.Repository.RepoPath())
- if err != nil {
- log.Error("RestoreBranch: CreateBranch: %w", err)
- ctx.Flash.Error(ctx.Tr("repo.branch.restore_failed", deletedBranch.Name))
- return
- }
+ objectFormat := git.ObjectFormatFromName(ctx.Repo.Repository.ObjectFormatName)
// Don't return error below this
if err := repo_service.PushUpdate(
diff --git a/routers/web/repo/setting/webhook.go b/routers/web/repo/setting/webhook.go
index bba4d4df51..c8e621fac8 100644
--- a/routers/web/repo/setting/webhook.go
+++ b/routers/web/repo/setting/webhook.go
@@ -656,12 +656,7 @@ func TestWebhook(ctx *context.Context) {
commit := ctx.Repo.Commit
if commit == nil {
ghost := user_model.NewGhostUser()
- objectFormat, err := git.GetObjectFormatOfRepo(ctx, ctx.Repo.Repository.RepoPath())
- if err != nil {
- ctx.Flash.Error("GetObjectFormatOfRepo: " + err.Error())
- ctx.Status(http.StatusInternalServerError)
- return
- }
+ objectFormat := git.ObjectFormatFromName(ctx.Repo.Repository.ObjectFormatName)
commit = &git.Commit{
ID: objectFormat.EmptyObjectID(),
Author: ghost.NewGitSig(),
diff --git a/services/mirror/mirror_pull.go b/services/mirror/mirror_pull.go
index de4a58f27b..2a38d4ba55 100644
--- a/services/mirror/mirror_pull.go
+++ b/services/mirror/mirror_pull.go
@@ -479,10 +479,7 @@ func SyncPullMirror(ctx context.Context, repoID int64) bool {
log.Error("SyncMirrors [repo: %-v]: unable to GetRefCommitID [ref_name: %s]: %v", m.Repo, result.refName, err)
continue
}
- objectFormat, err := git.GetObjectFormatOfRepo(ctx, m.Repo.RepoPath())
- if err != nil {
- log.Error("SyncMirrors [repo: %-v]: unable to GetHashTypeOfRepo: %v", m.Repo, err)
- }
+ objectFormat := git.ObjectFormatFromName(m.Repo.ObjectFormatName)
notify_service.SyncPushCommits(ctx, m.Repo.MustOwner(ctx), m.Repo, &repo_module.PushUpdateOptions{
RefFullName: result.refName,
OldCommitID: objectFormat.EmptyObjectID().String(),
diff --git a/services/pull/pull.go b/services/pull/pull.go
index be3d25d20a..9133a72acf 100644
--- a/services/pull/pull.go
+++ b/services/pull/pull.go
@@ -337,7 +337,7 @@ func AddTestPullRequestTask(doer *user_model.User, repoID int64, branch string,
}
if err == nil {
for _, pr := range prs {
- objectFormat, _ := git.GetObjectFormatOfRepo(ctx, pr.BaseRepo.RepoPath())
+ objectFormat := git.ObjectFormatFromName(pr.BaseRepo.ObjectFormatName)
if newCommitID != "" && newCommitID != objectFormat.EmptyObjectID().String() {
changed, err := checkIfPRContentChanged(ctx, pr, oldCommitID, newCommitID)
if err != nil {
diff --git a/services/release/release.go b/services/release/release.go
index a359e5078e..ba5fd1dd98 100644
--- a/services/release/release.go
+++ b/services/release/release.go
@@ -326,10 +326,7 @@ func DeleteReleaseByID(ctx context.Context, repo *repo_model.Repository, rel *re
}
refName := git.RefNameFromTag(rel.TagName)
- objectFormat, err := git.GetObjectFormatOfRepo(ctx, repo.RepoPath())
- if err != nil {
- return err
- }
+ objectFormat := git.ObjectFormatFromName(repo.ObjectFormatName)
notify_service.PushCommits(
ctx, doer, repo,
&repository.PushUpdateOptions{