From 218cafed1d2ff1ef04174d433a73cd210925902c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 15 Mar 2014 22:27:24 +0800 Subject: [PATCH] show folder first on file list page --- models/repo2.go | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/models/repo2.go b/models/repo2.go index 6aa6eda60..beeb8021e 100644 --- a/models/repo2.go +++ b/models/repo2.go @@ -8,7 +8,7 @@ import ( "path" "time" - git "github.com/speedata/gogit" + git "github.com/gogits/git" ) type RepoFile struct { @@ -46,20 +46,33 @@ func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile, return nil, err } + var repodirs []*RepoFile var repofiles []*RepoFile lastCommit.Tree.Walk(func(dirname string, entry *git.TreeEntry) int { if dirname == rpath { - repofiles = append(repofiles, &RepoFile{ - entry.Id, - entry.Filemode, - entry.Name, - path.Join(dirname, entry.Name), - lastCommit.Message(), - lastCommit.Committer.When, - }) + switch entry.Filemode { + case git.FileModeBlob, git.FileModeBlobExec: + repofiles = append(repofiles, &RepoFile{ + entry.Id, + entry.Filemode, + entry.Name, + path.Join(dirname, entry.Name), + lastCommit.Message(), + lastCommit.Committer.When, + }) + case git.FileModeTree: + repodirs = append(repodirs, &RepoFile{ + entry.Id, + entry.Filemode, + entry.Name, + path.Join(dirname, entry.Name), + lastCommit.Message(), + lastCommit.Committer.When, + }) + } } return 0 }) - return repofiles, nil + return append(repodirs, repofiles...), nil }