Browse Source

Need a field to specify if repository is bare

Unknown 11 years ago
parent
commit
e3f55ca0fb
3 changed files with 7 additions and 10 deletions
  1. 1 0
      models/action.go
  2. 4 2
      models/repo.go
  3. 2 8
      routers/repo/single.go

+ 1 - 0
models/action.go

@@ -87,6 +87,7 @@ func CommitRepoAction(userId int64, userName string,
 	if err != nil {
 		return err
 	}
+	repo.IsBare = false
 	repo.Updated = time.Now()
 	if err = UpdateRepository(repo); err != nil {
 		return err

+ 4 - 2
models/repo.go

@@ -83,10 +83,11 @@ type Repository struct {
 	Name        string `xorm:"index not null"`
 	Description string
 	Website     string
-	Private     bool
 	NumWatches  int
 	NumStars    int
 	NumForks    int
+	IsPrivate   bool
+	IsBare      bool
 	Created     time.Time `xorm:"created"`
 	Updated     time.Time `xorm:"updated"`
 }
@@ -139,7 +140,8 @@ func CreateRepository(user *User, repoName, desc, repoLang, license string, priv
 		Name:        repoName,
 		LowerName:   strings.ToLower(repoName),
 		Description: desc,
-		Private:     private,
+		IsPrivate:   private,
+		IsBare:      repoLang == "" && license == "" && !initReadme,
 	}
 
 	repoPath := RepoPath(user.Name, repoName)

+ 2 - 8
routers/repo/single.go

@@ -69,7 +69,7 @@ func Single(ctx *middleware.Context, params martini.Params) {
 		log.Error("repo.Single(GetBranches): %v", err)
 		ctx.Error(404)
 		return
-	} else if len(brs) == 0 {
+	} else if ctx.Repo.Repository.IsBare {
 		ctx.Data["IsBareRepo"] = true
 		ctx.HTML(200, "repo/single")
 		return
@@ -224,13 +224,7 @@ func Setting(ctx *middleware.Context, params martini.Params) {
 
 	ctx.Data["IsRepoToolbarSetting"] = true
 
-	// Branches.
-	brs, err := models.GetBranches(params["username"], params["reponame"])
-	if err != nil {
-		log.Error("repo.Setting(GetBranches): %v", err)
-		ctx.Error(404)
-		return
-	} else if len(brs) == 0 {
+	if ctx.Repo.Repository.IsBare {
 		ctx.Data["IsBareRepo"] = true
 		ctx.HTML(200, "repo/setting")
 		return