chore: fix git diff render (#38746)

Fix a regression from #38517 (the tail section index is not correctly
assigned).

And add a test to cover GetDiffForRender.
This commit is contained in:
wxiaoguang
2026-08-02 19:34:26 +02:00
committed by GitHub
parent 4e4ea75fb9
commit 7f7dc2d16c
3 changed files with 126 additions and 6 deletions
+5 -2
View File
@@ -9,6 +9,7 @@ import (
"fmt"
"gitea.dev/modules/git/gitcmd"
"gitea.dev/modules/util"
)
type FastImportFile struct {
@@ -27,11 +28,13 @@ type FastImportCommit struct {
func ForceFastImport(ctx context.Context, repo RepositoryFacade, commits []FastImportCommit) error {
var buf bytes.Buffer
for i, c := range commits {
msg := util.IfZero(c.Message, fmt.Sprintf("commit %d", i+1))
_, _ = fmt.Fprintf(&buf, "reset %s\n", c.Ref)
_, _ = fmt.Fprintf(&buf, "commit %s\nmark :%d\ncommitter Gitea <gitea@example.com> 1500000000 +0000\n", c.Ref, i+1)
_, _ = fmt.Fprintf(&buf, "data %d\n%s\n", len(c.Message), c.Message)
_, _ = fmt.Fprintf(&buf, "data %d\n%s\n", len(msg), msg)
for _, f := range c.Files {
_, _ = fmt.Fprintf(&buf, "M %s inline %s\ndata %d\n%s\n", f.Mode.String(), f.Path, len(f.Content), f.Content)
mode := util.IfZero(f.Mode, EntryModeBlob)
_, _ = fmt.Fprintf(&buf, "M %s inline %s\ndata %d\n%s\n", mode.String(), f.Path, len(f.Content), f.Content)
}
}
buf.WriteString("done\n")