Merge pull request '[v7.0/forgejo] [BUG] Use correct empty commit ID' (#3255) from bp-v7.0/forgejo-eeaef55 into v7.0/forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3255
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
This commit is contained in:
Earl Warren 2024-04-16 08:42:47 +00:00
commit 3fb1036156
2 changed files with 36 additions and 1 deletions

View file

@ -136,12 +136,19 @@ func (t *TemporaryUploadRepository) LsFiles(filenames ...string) ([]string, erro
// RemoveFilesFromIndex removes the given files from the index
func (t *TemporaryUploadRepository) RemoveFilesFromIndex(filenames ...string) error {
objectFormat, err := t.gitRepo.GetObjectFormat()
if err != nil {
return err
}
stdOut := new(bytes.Buffer)
stdErr := new(bytes.Buffer)
stdIn := new(bytes.Buffer)
for _, file := range filenames {
if file != "" {
stdIn.WriteString("0 0000000000000000000000000000000000000000\t")
stdIn.WriteString("0 ")
stdIn.WriteString(objectFormat.EmptyObjectID().String())
stdIn.WriteByte('\t')
stdIn.WriteString(file)
stdIn.WriteByte('\000')
}

View file

@ -0,0 +1,28 @@
// Copyright 2024 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package files
import (
"testing"
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/git"
"github.com/stretchr/testify/assert"
)
func TestRemoveFilesFromIndexSha256(t *testing.T) {
if git.CheckGitVersionAtLeast("2.42") != nil {
t.Skip("skipping because installed Git version doesn't support SHA256")
}
unittest.PrepareTestEnv(t)
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
temp, err := NewTemporaryUploadRepository(db.DefaultContext, repo)
assert.NoError(t, err)
assert.NoError(t, temp.Init("sha256"))
assert.NoError(t, temp.RemoveFilesFromIndex("README.md"))
}