mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	improve get commits performance
This commit is contained in:
		@@ -3,7 +3,7 @@ Gogs - Go Git Service [
 | 
			
		||||
 | 
			
		||||
##### Current version: 0.8.2
 | 
			
		||||
##### Current version: 0.8.3
 | 
			
		||||
 | 
			
		||||
| Web | UI  | Preview  |
 | 
			
		||||
|:-------------:|:-------:|:-------:|
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,7 @@ func checkVersion() {
 | 
			
		||||
		{"github.com/go-macaron/toolbox", toolbox.Version, "0.1.0"},
 | 
			
		||||
		{"gopkg.in/ini.v1", ini.Version, "1.8.4"},
 | 
			
		||||
		{"gopkg.in/macaron.v1", macaron.Version, "0.8.0"},
 | 
			
		||||
		{"github.com/gogits/git-shell", git.Version, "0.1.1"},
 | 
			
		||||
		{"github.com/gogits/git-shell", git.Version, "0.2.0"},
 | 
			
		||||
	}
 | 
			
		||||
	for _, c := range checkers {
 | 
			
		||||
		if !version.Compare(c.Version(), c.Expected, ">=") {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							@@ -18,7 +18,7 @@ import (
 | 
			
		||||
	"github.com/gogits/gogs/modules/setting"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const APP_VER = "0.8.2.1213"
 | 
			
		||||
const APP_VER = "0.8.3.1213"
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
			
		||||
 
 | 
			
		||||
@@ -8,12 +8,11 @@ import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"path"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/Unknwon/paginater"
 | 
			
		||||
 | 
			
		||||
	"github.com/gogits/git-shell"
 | 
			
		||||
	git "github.com/gogits/git-shell"
 | 
			
		||||
 | 
			
		||||
	"github.com/gogits/gogs/models"
 | 
			
		||||
	"github.com/gogits/gogs/modules/base"
 | 
			
		||||
@@ -134,38 +133,13 @@ func Home(ctx *middleware.Context) {
 | 
			
		||||
		}
 | 
			
		||||
		entries.Sort()
 | 
			
		||||
 | 
			
		||||
		files := make([][]interface{}, 0, len(entries))
 | 
			
		||||
		for _, te := range entries {
 | 
			
		||||
			if te.Type != git.OBJECT_COMMIT {
 | 
			
		||||
				c, err := ctx.Repo.Commit.GetCommitByPath(filepath.Join(treePath, te.Name()))
 | 
			
		||||
		ctx.Data["Files"], err = entries.GetCommitsInfo(ctx.Repo.Commit, treePath)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
					ctx.Handle(500, "GetCommitByPath", err)
 | 
			
		||||
			ctx.Handle(500, "GetCommitsInfo", 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(500, "GetSubModule", err)
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
				smUrl := ""
 | 
			
		||||
				if sm != nil {
 | 
			
		||||
					smUrl = sm.Url
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				c, err := ctx.Repo.Commit.GetCommitByPath(filepath.Join(treePath, te.Name()))
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					ctx.Handle(500, "GetCommitByPath", err)
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
				files = append(files, []interface{}{te, git.NewSubModuleFile(c, smUrl, te.ID.String())})
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		ctx.Data["Files"] = files
 | 
			
		||||
 | 
			
		||||
		var readmeFile *git.Blob
 | 
			
		||||
 | 
			
		||||
		for _, f := range entries {
 | 
			
		||||
			if f.IsDir() || !base.IsReadmeFile(f.Name()) {
 | 
			
		||||
				continue
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
0.8.2.1213
 | 
			
		||||
0.8.3.1213
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
						<a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a>
 | 
			
		||||
						<div class="divider"> / </div>
 | 
			
		||||
						<a href="{{$.RepoLink}}">{{.Name}}</a>
 | 
			
		||||
						{{if .IsMirror}}<div class="fork-flag">{{$.i18n.Tr "repo.mirror_from"}} <a target="_blank" href="{{$.MirrorAddress}}">{{$.Mirror.Address}}</a></div>{{end}}
 | 
			
		||||
						{{if .IsMirror}}<div class="fork-flag">{{$.i18n.Tr "repo.mirror_from"}} <a target="_blank" href="{{$.Mirror.Address}}">{{$.Mirror.Address}}</a></div>{{end}}
 | 
			
		||||
						{{if .IsFork}}<div class="fork-flag">{{$.i18n.Tr "repo.forked_from"}} <a href="{{.BaseRepo.RepoLink}}">{{SubStr .BaseRepo.RepoLink 1 -1}}</a></div>{{end}}
 | 
			
		||||
					</div>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user