Ver código fonte

Fix panic when no master branch

Unknown 11 anos atrás
pai
commit
75109bbd65
6 arquivos alterados com 24 adições e 13 exclusões
  1. 1 1
      README.md
  2. 1 1
      README_ZH.md
  3. 1 1
      gogs.go
  4. 10 7
      models/repo.go
  5. 10 2
      modules/middleware/repo.go
  6. 1 1
      templates/repo/setting.tmpl

+ 1 - 1
README.md

@@ -5,7 +5,7 @@ Gogs(Go Git Service) is a Self Hosted Git Service in the Go Programming Language
 
 ![Demo](http://gowalker.org/public/gogs_demo.gif)
 
-##### Current version: 0.3.1 Alpha
+##### Current version: 0.3.2 Alpha
 
 ### NOTICES
 

+ 1 - 1
README_ZH.md

@@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个由 Go 语言编写的自助 Git 托管服务。
 
 ![Demo](http://gowalker.org/public/gogs_demo.gif)
 
-##### 当前版本:0.3.1 Alpha
+##### 当前版本:0.3.2 Alpha
 
 ## 开发目的
 

+ 1 - 1
gogs.go

@@ -19,7 +19,7 @@ import (
 // Test that go1.2 tag above is included in builds. main.go refers to this definition.
 const go12tag = true
 
-const APP_VER = "0.3.1.0501 Alpha"
+const APP_VER = "0.3.2.0501 Alpha"
 
 func init() {
 	base.AppVer = APP_VER

+ 10 - 7
models/repo.go

@@ -246,14 +246,17 @@ func CreateRepository(user *User, name, desc, lang, license string, private, mir
 	}
 
 	repo := &Repository{
-		OwnerId:       user.Id,
-		Name:          name,
-		LowerName:     strings.ToLower(name),
-		Description:   desc,
-		IsPrivate:     private,
-		IsBare:        lang == "" && license == "" && !initReadme,
-		DefaultBranch: "master",
+		OwnerId:     user.Id,
+		Name:        name,
+		LowerName:   strings.ToLower(name),
+		Description: desc,
+		IsPrivate:   private,
+		IsBare:      lang == "" && license == "" && !initReadme,
 	}
+	if !repo.IsBare {
+		repo.DefaultBranch = "master"
+	}
+
 	repoPath := RepoPath(user.Name, repo.Name)
 
 	sess := orm.NewSession()

+ 10 - 2
modules/middleware/repo.go

@@ -194,9 +194,17 @@ func RepoAssignment(redirect bool, args ...bool) martini.Handler {
 				}
 
 			} else {
-				refName = ctx.Repo.Repository.DefaultBranch
 				if len(refName) == 0 {
-					refName = "master"
+					if gitRepo.IsBranchExist(ctx.Repo.Repository.DefaultBranch) {
+						refName = ctx.Repo.Repository.DefaultBranch
+					} else {
+						brs, err := gitRepo.GetBranches()
+						if err != nil {
+							ctx.Handle(500, "RepoAssignment(GetBranches))", err)
+							return
+						}
+						refName = brs[0]
+					}
 				}
 				goto detect
 			}

+ 1 - 1
templates/repo/setting.tmpl

@@ -41,7 +41,7 @@
                         <label class="col-md-3 text-right">Default Branch</label>
                         <div class="col-md-3">
                             <select name="branch" id="repo-default-branch" class="form-control">
-                                <option value="{{.Repository.DefaultBranch}}">{{.Repository.DefaultBranch}}</option>
+                                {{if .Repository.DefaultBranch}}<option value="{{.Repository.DefaultBranch}}">{{.Repository.DefaultBranch}}</option>{{end}}
                                 {{range .Branches}}
                                 {{if eq . $.Repository.DefaultBranch}}{{else}}<option value="{{.}}">{{.}}</option>{{end}}
                                 {{end}}