diff options
author | zeripath <art27@cantab.net> | 2021-12-23 13:44:00 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-23 21:44:00 +0800 |
commit | ffc08c1914fbe6a5a5ebe9c8571b790ac6024d71 (patch) | |
tree | 78e95e6dbf82d25e0fa9c534cab61fb8d266cc9f /services/migrations | |
parent | e0cf3d86c44fde99b49f12c7a1386cbf433a0207 (diff) | |
download | gitea-ffc08c1914fbe6a5a5ebe9c8571b790ac6024d71.tar.gz gitea-ffc08c1914fbe6a5a5ebe9c8571b790ac6024d71.zip |
Do not read or write git reference files directly (#18079)
Git will and can pack references into packfiles and therefore if you write/read the
files directly you will get false results. Instead you should use update-ref and
show-ref. To that end I have created three new functions in git/repo_commit.go that
will do this correctly.
Related #17191
Signed-off-by: Andrew Thornton <art27@cantab.net>
Diffstat (limited to 'services/migrations')
-rw-r--r-- | services/migrations/gitea_uploader.go | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/services/migrations/gitea_uploader.go b/services/migrations/gitea_uploader.go index 33ca3127fb..79225d75a0 100644 --- a/services/migrations/gitea_uploader.go +++ b/services/migrations/gitea_uploader.go @@ -698,8 +698,7 @@ func (g *GiteaLocalUploader) newPullRequest(pr *base.PullRequest) (*models.PullR if pr.Head.SHA != "" { // Git update-ref remove bad references with a relative path log.Warn("Deprecated local head, removing : %v", pr.Head.SHA) - relPath := pr.GetGitRefName() - _, err = git.NewCommand("update-ref", "--no-deref", "-d", relPath).RunInDir(g.repo.RepoPath()) + err = g.gitRepo.RemoveReference(pr.GetGitRefName()) } else { // The SHA is empty, remove the head file log.Warn("Empty reference, removing : %v", pullHead) |