Skip to content

Commit c387ea4

Browse files
committed
fixed sort
1 parent 50b8c44 commit c387ea4

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

services/gitdiff/gitdiff.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,11 +1432,13 @@ func buildTree(files []*DiffFile) []*FileTreeNode {
14321432
for _, node := range result {
14331433
if len(node.Children) > 0 {
14341434
mergedNode := mergeSingleChildDirs(node)
1435+
sortChildren(mergedNode)
14351436
roots = append(roots, mergedNode)
14361437
} else {
14371438
roots = append(roots, node)
14381439
}
14391440
}
1441+
sortChildren(&FileTreeNode{Children: roots})
14401442
return roots
14411443
}
14421444

@@ -1455,3 +1457,15 @@ func mergeSingleChildDirs(node *FileTreeNode) *FileTreeNode {
14551457
}
14561458
return node
14571459
}
1460+
1461+
func sortChildren(node *FileTreeNode) {
1462+
sort.Slice(node.Children, func(i, j int) bool {
1463+
if node.Children[i].IsFile == node.Children[j].IsFile {
1464+
return node.Children[i].Name < node.Children[j].Name
1465+
}
1466+
return !node.Children[i].IsFile
1467+
})
1468+
for _, child := range node.Children {
1469+
sortChildren(child)
1470+
}
1471+
}

0 commit comments

Comments
 (0)