|
@@ -10,6 +10,7 @@ import (
|
|
|
"path"
|
|
|
"path/filepath"
|
|
|
"strings"
|
|
|
+ "time"
|
|
|
|
|
|
"github.com/gogits/gogs/modules/base"
|
|
|
"github.com/gogits/gogs/modules/git"
|
|
@@ -21,6 +22,15 @@ const (
|
|
|
HOME base.TplName = "repo/home"
|
|
|
)
|
|
|
|
|
|
+type fakeCommit struct {
|
|
|
+ Id string
|
|
|
+ Summary string
|
|
|
+ Url string
|
|
|
+ Committer struct {
|
|
|
+ When time.Time
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func Home(ctx *middleware.Context) {
|
|
|
ctx.Data["Title"] = ctx.Repo.Repository.Name
|
|
|
|
|
@@ -127,13 +137,31 @@ func Home(ctx *middleware.Context) {
|
|
|
files := make([][]interface{}, 0, len(entries))
|
|
|
|
|
|
for _, te := range entries {
|
|
|
- c, err := ctx.Repo.Commit.GetCommitOfRelPath(filepath.Join(treePath, te.Name()))
|
|
|
- if err != nil {
|
|
|
- ctx.Handle(404, "GetCommitOfRelPath", err)
|
|
|
- return
|
|
|
- }
|
|
|
+ if te.Type != git.COMMIT {
|
|
|
+ c, err := ctx.Repo.Commit.GetCommitOfRelPath(filepath.Join(treePath, te.Name()))
|
|
|
+ if err != nil {
|
|
|
+ ctx.Handle(404, "GetCommitOfRelPath", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ files = append(files, []interface{}{te, c})
|
|
|
+ } else {
|
|
|
+ sm, err := ctx.Repo.Commit.GetSubModule(path.Join(treename, te.Name()))
|
|
|
+ if err != nil {
|
|
|
+ ctx.Handle(404, "GetSubModule", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- files = append(files, []interface{}{te, c})
|
|
|
+ commit := git.Commit{
|
|
|
+ Tree: *tree,
|
|
|
+ Id: te.Id,
|
|
|
+ Committer: &git.Signature{
|
|
|
+ When: time.Now(),
|
|
|
+ },
|
|
|
+ CommitMessage: sm.Url,
|
|
|
+ }
|
|
|
+
|
|
|
+ files = append(files, []interface{}{te, &commit})
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
ctx.Data["Files"] = files
|