diff --git a/services/repository/files/tree.go b/services/repository/files/tree.go index b1f63790f1..38a6fa7b45 100644 --- a/services/repository/files/tree.go +++ b/services/repository/files/tree.go @@ -427,6 +427,7 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa if lastDirEntry.IsRegular() { // path.Dir cannot correctly handle .xxx file dir, _ = path.Split(treePath) + dir = strings.TrimRight(dir, "/") if dir == "" { lastDirEntry = rootEntry } else { diff --git a/services/repository/files/tree_test.go b/services/repository/files/tree_test.go index 284817b023..1f2c3d456c 100644 --- a/services/repository/files/tree_test.go +++ b/services/repository/files/tree_test.go @@ -139,14 +139,15 @@ func Test_GetTreeInformation(t *testing.T) { treeList, err = GetTreeInformation(ctx2, ctx2.Repo.Repository, "", refName) assert.NoError(t, err) assert.Len(t, treeList, 2) - assert.EqualValues(t, "README.md", treeList[0].Name) - assert.EqualValues(t, "README.md", treeList[0].Path) - assert.True(t, treeList[0].IsFile) + + assert.EqualValues(t, "doc", treeList[0].Name) + assert.EqualValues(t, "doc", treeList[0].Path) + assert.False(t, treeList[0].IsFile) assert.Empty(t, treeList[0].Children) - assert.EqualValues(t, "doc", treeList[1].Name) - assert.EqualValues(t, "doc", treeList[1].Path) - assert.False(t, treeList[1].IsFile) + assert.EqualValues(t, "README.md", treeList[1].Name) + assert.EqualValues(t, "README.md", treeList[1].Path) + assert.True(t, treeList[1].IsFile) assert.Empty(t, treeList[1].Children) treeList, err = GetTreeInformation(ctx2, ctx2.Repo.Repository, "doc", refName)