aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2015-11-15 14:41:36 -0500
committerUnknwon <u@gogs.io>2015-11-15 14:41:36 -0500
commit4f03b81ec777813820d4e33ec11893e214ec27d2 (patch)
treeacf445918b155547a47f40e840a52aaa6332096c
parentb4970b3cc31d09b2b74d1ace4bfb39ab494d8d24 (diff)
downloadgitea-4f03b81ec777813820d4e33ec11893e214ec27d2.tar.gz
gitea-4f03b81ec777813820d4e33ec11893e214ec27d2.zip
#1931 Test patch does not checkout correct base branch
-rw-r--r--models/pull.go11
-rw-r--r--models/repo.go2
-rw-r--r--modules/middleware/repo.go1
-rw-r--r--templates/repo/sidebar.tmpl6
4 files changed, 15 insertions, 5 deletions
diff --git a/models/pull.go b/models/pull.go
index 56af5f828d..094cb9b26a 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -218,6 +218,7 @@ var patchConflicts = []string{
}
// testPatch checks if patch can be merged to base repository without conflit.
+// FIXME: make a mechanism to clean up stable local copies.
func (pr *PullRequest) testPatch() (err error) {
if pr.BaseRepo == nil {
pr.BaseRepo, err = GetRepositoryByID(pr.BaseRepoID)
@@ -243,8 +244,16 @@ func (pr *PullRequest) testPatch() (err error) {
return fmt.Errorf("UpdateLocalCopy: %v", err)
}
- pr.Status = PULL_REQUEST_STATUS_CHECKING
+ // Checkout base branch.
_, stderr, err := process.ExecDir(-1, pr.BaseRepo.LocalCopyPath(),
+ fmt.Sprintf("PullRequest.Merge(git checkout): %s", pr.BaseRepo.ID),
+ "git", "checkout", pr.BaseBranch)
+ if err != nil {
+ return fmt.Errorf("git checkout: %s", stderr)
+ }
+
+ pr.Status = PULL_REQUEST_STATUS_CHECKING
+ _, stderr, err = process.ExecDir(-1, pr.BaseRepo.LocalCopyPath(),
fmt.Sprintf("testPatch(git apply --check): %d", pr.BaseRepo.ID),
"git", "apply", "--check", patchPath)
if err != nil {
diff --git a/models/repo.go b/models/repo.go
index fab463b948..bbd978ff4b 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -320,7 +320,7 @@ func (repo *Repository) UpdateLocalCopy() error {
}
} else {
_, stderr, err := process.ExecDir(-1, localPath,
- fmt.Sprintf("UpdateLocalCopy(git pull): %s", repoPath), "git", "pull")
+ fmt.Sprintf("UpdateLocalCopy(git pull --all): %s", repoPath), "git", "pull", "--all")
if err != nil {
return fmt.Errorf("git pull: %v - %s", err, stderr)
}
diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go
index afa95a250c..c7481743d4 100644
--- a/modules/middleware/repo.go
+++ b/modules/middleware/repo.go
@@ -81,7 +81,6 @@ func RepoRef() macaron.Handler {
return func(ctx *Context) {
// Empty repository does not have reference information.
if ctx.Repo.Repository.IsBare {
- ctx.Data["CommitsCount"] = 0
return
}
diff --git a/templates/repo/sidebar.tmpl b/templates/repo/sidebar.tmpl
index df033c0e15..2e4fdfb64e 100644
--- a/templates/repo/sidebar.tmpl
+++ b/templates/repo/sidebar.tmpl
@@ -1,4 +1,5 @@
-<div class="ui five item menu">
+{{if not .IsBareRepo}}
+<div class="ui {{if .IsRepositoryAdmin}}five{{else}}four{{end}} item menu">
<a class="item" href="{{.RepoLink}}/issues">
<i class="icon octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} <span class="ui blue label">{{.Repository.NumOpenIssues}}</span>
</a>
@@ -16,4 +17,5 @@
<i class="icon octicon octicon-tools"></i> {{.i18n.Tr "repo.settings"}}
</a>
{{end}}
-</div> \ No newline at end of file
+</div>
+{{end}} \ No newline at end of file