mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-27 12:53:57 +01:00
Merge pull request '[BUG] Use correct empty commit ID' (#3247) from gusted/forgejo-sha256-index into forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3247 Reviewed-by: Gergely Nagy <algernon@noreply.codeberg.org> Reviewed-by: 0ko <0ko@noreply.codeberg.org>
This commit is contained in:
commit
9a43c39d3e
2 changed files with 36 additions and 1 deletions
|
@ -136,12 +136,19 @@ func (t *TemporaryUploadRepository) LsFiles(filenames ...string) ([]string, erro
|
||||||
|
|
||||||
// RemoveFilesFromIndex removes the given files from the index
|
// RemoveFilesFromIndex removes the given files from the index
|
||||||
func (t *TemporaryUploadRepository) RemoveFilesFromIndex(filenames ...string) error {
|
func (t *TemporaryUploadRepository) RemoveFilesFromIndex(filenames ...string) error {
|
||||||
|
objectFormat, err := t.gitRepo.GetObjectFormat()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
stdOut := new(bytes.Buffer)
|
stdOut := new(bytes.Buffer)
|
||||||
stdErr := new(bytes.Buffer)
|
stdErr := new(bytes.Buffer)
|
||||||
stdIn := new(bytes.Buffer)
|
stdIn := new(bytes.Buffer)
|
||||||
for _, file := range filenames {
|
for _, file := range filenames {
|
||||||
if file != "" {
|
if file != "" {
|
||||||
stdIn.WriteString("0 0000000000000000000000000000000000000000\t")
|
stdIn.WriteString("0 ")
|
||||||
|
stdIn.WriteString(objectFormat.EmptyObjectID().String())
|
||||||
|
stdIn.WriteByte('\t')
|
||||||
stdIn.WriteString(file)
|
stdIn.WriteString(file)
|
||||||
stdIn.WriteByte('\000')
|
stdIn.WriteByte('\000')
|
||||||
}
|
}
|
||||||
|
|
28
services/repository/files/temp_repo_test.go
Normal file
28
services/repository/files/temp_repo_test.go
Normal 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"))
|
||||||
|
}
|
Loading…
Reference in a new issue