Browse Source

models/repo: UpdateLocalCopy should always aceept valid branch name

pull/3785/merge
Unknwon 8 years ago
parent
commit
88143f1934
No known key found for this signature in database
GPG Key ID: 25B575AE3213B2B3
  1. 2
      gogs.go
  2. 16
      models/repo.go
  3. 4
      models/wiki.go
  4. 2
      templates/.VERSION

2
gogs.go

@ -16,7 +16,7 @@ import (
"github.com/gogits/gogs/modules/setting" "github.com/gogits/gogs/modules/setting"
) )
const APP_VER = "0.9.149.0215" const APP_VER = "0.9.150.0216"
func init() { func init() {
setting.AppVer = APP_VER setting.AppVer = APP_VER

16
models/repo.go

@ -469,11 +469,17 @@ func (repo *Repository) LocalCopyPath() string {
} }
// UpdateLocalCopy fetches latest changes of given branch from repoPath to localPath. // UpdateLocalCopy fetches latest changes of given branch from repoPath to localPath.
// It creates a new clone if local copy does not exist. // It creates a new clone if local copy does not exist, but does not checks out to a
// This function checks out target branch by default, it is safe to assume subsequent // specific branch if the local copy belongs to a wiki.
// operations are operating against target branch when caller has confidence for no race condition. // For existing local copy, it checks out to target branch by default, and safe to
func UpdateLocalCopyBranch(repoPath, localPath, branch string) (err error) { // assume subsequent operations are against target branch when caller has confidence
// about no race condition.
func UpdateLocalCopyBranch(repoPath, localPath, branch string, isWiki bool) (err error) {
if !com.IsExist(localPath) { if !com.IsExist(localPath) {
// Checkout to a specific branch fails when wiki is an empty repository.
if isWiki {
branch = ""
}
if err = git.Clone(repoPath, localPath, git.CloneRepoOptions{ if err = git.Clone(repoPath, localPath, git.CloneRepoOptions{
Timeout: time.Duration(setting.Git.Timeout.Clone) * time.Second, Timeout: time.Duration(setting.Git.Timeout.Clone) * time.Second,
Branch: branch, Branch: branch,
@ -502,7 +508,7 @@ func UpdateLocalCopyBranch(repoPath, localPath, branch string) (err error) {
// UpdateLocalCopyBranch makes sure local copy of repository in given branch is up-to-date. // UpdateLocalCopyBranch makes sure local copy of repository in given branch is up-to-date.
func (repo *Repository) UpdateLocalCopyBranch(branch string) error { func (repo *Repository) UpdateLocalCopyBranch(branch string) error {
return UpdateLocalCopyBranch(repo.RepoPath(), repo.LocalCopyPath(), branch) return UpdateLocalCopyBranch(repo.RepoPath(), repo.LocalCopyPath(), branch, false)
} }
// PatchPath returns corresponding patch file path of repository by given issue ID. // PatchPath returns corresponding patch file path of repository by given issue ID.

4
models/wiki.go

@ -76,9 +76,7 @@ func (repo *Repository) LocalWikiPath() string {
// UpdateLocalWiki makes sure the local copy of repository wiki is up-to-date. // UpdateLocalWiki makes sure the local copy of repository wiki is up-to-date.
func (repo *Repository) UpdateLocalWiki() error { func (repo *Repository) UpdateLocalWiki() error {
// Don't pass branch name here because it fails to clone and return UpdateLocalCopyBranch(repo.WikiPath(), repo.LocalWikiPath(), "master", true)
// checkout to a specific branch when wiki is an empty repository.
return UpdateLocalCopyBranch(repo.WikiPath(), repo.LocalWikiPath(), "")
} }
func discardLocalWikiChanges(localPath string) error { func discardLocalWikiChanges(localPath string) error {

2
templates/.VERSION

@ -1 +1 @@
0.9.149.0215 0.9.150.0216
Loading…
Cancel
Save