#1742 Update default branch in git repository while change in web view
This commit is contained in:
		
							parent
							
								
									f04d773f4f
								
							
						
					
					
						commit
						2c653141a8
					
				
					 7 changed files with 47 additions and 4 deletions
				
			
		|  | @ -13,6 +13,7 @@ watch_dirs = [ | ||||||
| watch_exts = [".go"] | watch_exts = [".go"] | ||||||
| build_delay = 1500 | build_delay = 1500 | ||||||
| cmds = [ | cmds = [ | ||||||
|  | 	["go", "install"], | ||||||
| 	["go", "install", "-race"], # sqlite redis memcache cert pam tidb | 	["go", "install", "-race"], # sqlite redis memcache cert pam tidb | ||||||
| 	["go", "build", "-race"], | 	["go", "build", "-race"], | ||||||
| 	["./gogs", "web"] | 	["./gogs", "web"] | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ Gogs - Go Git Service [ |  | ||||||
| 
 | 
 | ||||||
| ##### Current version: 0.7.16 Beta | ##### Current version: 0.7.17 Beta | ||||||
| 
 | 
 | ||||||
| <table> | <table> | ||||||
|     <tr> |     <tr> | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							|  | @ -17,7 +17,7 @@ import ( | ||||||
| 	"github.com/gogits/gogs/modules/setting" | 	"github.com/gogits/gogs/modules/setting" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const APP_VER = "0.7.16.1118 Beta" | const APP_VER = "0.7.17.1118 Beta" | ||||||
| 
 | 
 | ||||||
| func init() { | func init() { | ||||||
| 	runtime.GOMAXPROCS(runtime.NumCPU()) | 	runtime.GOMAXPROCS(runtime.NumCPU()) | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								modules/git/error.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/git/error.go
									
									
									
									
									
										Normal 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) | ||||||
|  | } | ||||||
|  | @ -35,3 +35,16 @@ func (repo *Repository) GetBranches() ([]string, error) { | ||||||
| 	} | 	} | ||||||
| 	return branches, nil | 	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 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -80,8 +80,15 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) { | ||||||
| 		repo.Name = newRepoName | 		repo.Name = newRepoName | ||||||
| 		repo.LowerName = strings.ToLower(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 | 			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.Description = form.Description | ||||||
| 		repo.Website = form.Website | 		repo.Website = form.Website | ||||||
|  |  | ||||||
|  | @ -1 +1 @@ | ||||||
| 0.7.16.1118 Beta | 0.7.17.1118 Beta | ||||||
		Loading…
	
		Reference in a new issue