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>
This commit is contained in:
parent
e0cf3d86c4
commit
ffc08c1914
6 changed files with 32 additions and 45 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue