|
|
|
@ -10,6 +10,7 @@ import ( |
|
|
|
|
"container/list" |
|
|
|
|
"fmt" |
|
|
|
|
"io" |
|
|
|
|
"net/url" |
|
|
|
|
"path" |
|
|
|
|
"strings" |
|
|
|
|
|
|
|
|
@ -569,7 +570,19 @@ func ParseCompareInfo(ctx *context.Context) (*models.User, *models.Repository, * |
|
|
|
|
// format: <base branch>...[<head repo>:]<head branch>
|
|
|
|
|
// base<-head: master...head:feature
|
|
|
|
|
// same repo: master...feature
|
|
|
|
|
infos := strings.Split(ctx.Params("*"), "...") |
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
|
headUser *models.User |
|
|
|
|
headBranch string |
|
|
|
|
isSameRepo bool |
|
|
|
|
infoPath string |
|
|
|
|
err error |
|
|
|
|
) |
|
|
|
|
infoPath, err = url.QueryUnescape(ctx.Params("*")) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(404, "QueryUnescape", err) |
|
|
|
|
} |
|
|
|
|
infos := strings.Split(infoPath, "...") |
|
|
|
|
if len(infos) != 2 { |
|
|
|
|
log.Trace("ParseCompareInfo[%d]: not enough compared branches information %s", baseRepo.ID, infos) |
|
|
|
|
ctx.Handle(404, "CompareAndPullRequest", nil) |
|
|
|
@ -579,13 +592,6 @@ func ParseCompareInfo(ctx *context.Context) (*models.User, *models.Repository, * |
|
|
|
|
baseBranch := infos[0] |
|
|
|
|
ctx.Data["BaseBranch"] = baseBranch |
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
|
headUser *models.User |
|
|
|
|
headBranch string |
|
|
|
|
isSameRepo bool |
|
|
|
|
err error |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
// If there is no head repository, it means pull request between same repository.
|
|
|
|
|
headInfos := strings.Split(infos[1], ":") |
|
|
|
|
if len(headInfos) == 1 { |
|
|
|
|