Skip to content

Commit 9ae1c85

Browse files
committed
Fix bug
1 parent 2178347 commit 9ae1c85

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

services/repository/files/tree.go

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,15 +253,21 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
253253
}
254254

255255
var treeList []*TreeEntry
256+
var parentEntry *TreeEntry
257+
fields := strings.SplitN(treePath, "/", 2)
256258
for _, rootEntry := range rootEntries {
257-
treeList = append(treeList, &TreeEntry{
259+
treeEntry := &TreeEntry{
258260
Name: rootEntry.Name(),
259261
IsFile: rootEntry.Mode() != git.EntryModeTree,
260262
Path: rootEntry.Name(),
261-
})
263+
}
264+
treeList = append(treeList, treeEntry)
265+
if fields[0] == rootEntry.Name() {
266+
parentEntry = treeEntry
267+
}
262268
}
263269

264-
if treePath == "" {
270+
if treePath == "" || parentEntry == nil {
265271
return treeList, nil
266272
}
267273

@@ -284,13 +290,24 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
284290
}
285291
}
286292

293+
for i := 1; i < len(fields); i++ {
294+
parentEntry.Children = []*TreeEntry{
295+
{
296+
Name: fields[i],
297+
IsFile: false,
298+
Path: path.Join(fields[:i+1]...),
299+
},
300+
}
301+
parentEntry = parentEntry.Children[0]
302+
}
303+
287304
entries, err := listEntry.Tree().ListEntries()
288305
if err != nil {
289306
return nil, err
290307
}
291308

292309
for _, entry := range entries {
293-
treeList = append(treeList, &TreeEntry{
310+
parentEntry.Children = append(parentEntry.Children, &TreeEntry{
294311
Name: entry.Name(),
295312
IsFile: entry.Mode() != git.EntryModeTree,
296313
Path: path.Join(treePath, entry.Name()),

0 commit comments

Comments
 (0)