Browse Source

#1742 Update default branch in git repository while change in web view

for-closed-social
Unknwon 9 years ago
parent
commit
2c653141a8
7 changed files with 47 additions and 4 deletions
  1. +1
    -0
      .bra.toml
  2. +1
    -1
      README.md
  3. +1
    -1
      gogs.go
  4. +22
    -0
      modules/git/error.go
  5. +13
    -0
      modules/git/repo_branch.go
  6. +8
    -1
      routers/repo/setting.go
  7. +1
    -1
      templates/.VERSION

+ 1
- 0
.bra.toml View File

@ -13,6 +13,7 @@ watch_dirs = [
watch_exts = [".go"]
build_delay = 1500
cmds = [
["go", "install"],
["go", "install", "-race"], # sqlite redis memcache cert pam tidb
["go", "build", "-race"],
["./gogs", "web"]

+ 1
- 1
README.md View File

@ -5,7 +5,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
![](public/img/gogs-large-resize.png)
##### Current version: 0.7.16 Beta
##### Current version: 0.7.17 Beta
<table>
<tr>

+ 1
- 1
gogs.go View File

@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
const APP_VER = "0.7.16.1118 Beta"
const APP_VER = "0.7.17.1118 Beta"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())

+ 22
- 0
modules/git/error.go View File

@ -0,0 +1,22 @@
// Copyright 2015 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package git
import (
"fmt"
)
type ErrUnsupportedVersion struct {
Required string
}
func IsErrUnsupportedVersion(err error) bool {
_, ok := err.(ErrUnsupportedVersion)
return ok
}
func (err ErrUnsupportedVersion) Error() string {
return fmt.Sprintf("Operation requires higher version [required: %s]", err.Required)
}

+ 13
- 0
modules/git/repo_branch.go View File

@ -35,3 +35,16 @@ func (repo *Repository) GetBranches() ([]string, error) {
}
return branches, nil
}
// SetDefaultBranch sets default branch of repository.
func (repo *Repository) SetDefaultBranch(branchName string) error {
if gitVer.LessThan(MustParseVersion("1.7.10")) {
return ErrUnsupportedVersion{"1.7.10"}
}
_, stderr, err := com.ExecCmdDir(repo.Path, "git", "symbolic-ref", "HEAD", "refs/heads/"+branchName)
if err != nil {
return concatenateError(err, stderr)
}
return nil
}

+ 8
- 1
routers/repo/setting.go View File

@ -80,8 +80,15 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) {
repo.Name = newRepoName
repo.LowerName = strings.ToLower(newRepoName)
if ctx.Repo.GitRepo.IsBranchExist(form.Branch) {
if ctx.Repo.GitRepo.IsBranchExist(form.Branch) &&
repo.DefaultBranch != form.Branch {
repo.DefaultBranch = form.Branch
if err := ctx.Repo.GitRepo.SetDefaultBranch(form.Branch); err != nil {
if !git.IsErrUnsupportedVersion(err) {
ctx.Handle(500, "SetDefaultBranch", err)
return
}
}
}
repo.Description = form.Description
repo.Website = form.Website

+ 1
- 1
templates/.VERSION View File

@ -1 +1 @@
0.7.16.1118 Beta
0.7.17.1118 Beta

Loading…
Cancel
Save