0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-07-17 15:22:52 +02:00
This commit is contained in:
Lunny Xiao 2024-12-26 11:41:00 -08:00
parent 2178347348
commit 9ae1c85ee8
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A

View File

@ -253,15 +253,21 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
}
var treeList []*TreeEntry
var parentEntry *TreeEntry
fields := strings.SplitN(treePath, "/", 2)
for _, rootEntry := range rootEntries {
treeList = append(treeList, &TreeEntry{
treeEntry := &TreeEntry{
Name: rootEntry.Name(),
IsFile: rootEntry.Mode() != git.EntryModeTree,
Path: rootEntry.Name(),
})
}
treeList = append(treeList, treeEntry)
if fields[0] == rootEntry.Name() {
parentEntry = treeEntry
}
}
if treePath == "" {
if treePath == "" || parentEntry == nil {
return treeList, nil
}
@ -284,13 +290,24 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
}
}
for i := 1; i < len(fields); i++ {
parentEntry.Children = []*TreeEntry{
{
Name: fields[i],
IsFile: false,
Path: path.Join(fields[:i+1]...),
},
}
parentEntry = parentEntry.Children[0]
}
entries, err := listEntry.Tree().ListEntries()
if err != nil {
return nil, err
}
for _, entry := range entries {
treeList = append(treeList, &TreeEntry{
parentEntry.Children = append(parentEntry.Children, &TreeEntry{
Name: entry.Name(),
IsFile: entry.Mode() != git.EntryModeTree,
Path: path.Join(treePath, entry.Name()),