|
|
|
@ -636,6 +636,7 @@ func CompareAndPullRequestPost(ctx *context.Context, form auth.CreateIssueForm)
|
|
|
|
|
ctx.Data["Title"] = ctx.Tr("repo.pulls.compare_changes") |
|
|
|
|
ctx.Data["PageIsComparePull"] = true |
|
|
|
|
ctx.Data["IsDiffCompare"] = true |
|
|
|
|
ctx.Data["RequireHighlightJS"] = true |
|
|
|
|
renderAttachmentSettings(ctx) |
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
@ -648,12 +649,6 @@ func CompareAndPullRequestPost(ctx *context.Context, form auth.CreateIssueForm)
|
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
patch, err := headGitRepo.GetPatch(prInfo.MergeBase, headBranch) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "GetPatch", err) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
labelIDs, milestoneID, assigneeID := ValidateRepoMetas(ctx, form) |
|
|
|
|
if ctx.Written() { |
|
|
|
|
return |
|
|
|
@ -664,10 +659,25 @@ func CompareAndPullRequestPost(ctx *context.Context, form auth.CreateIssueForm)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ctx.HasError() { |
|
|
|
|
auth.AssignForm(form, ctx.Data) |
|
|
|
|
|
|
|
|
|
// This stage is already stop creating new pull request, so it does not matter if it has
|
|
|
|
|
// something to compare or not.
|
|
|
|
|
PrepareCompareDiff(ctx, headUser, headRepo, headGitRepo, prInfo, baseBranch, headBranch) |
|
|
|
|
if ctx.Written() { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ctx.HTML(200, COMPARE_PULL) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
patch, err := headGitRepo.GetPatch(prInfo.MergeBase, headBranch) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "GetPatch", err) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pullIssue := &models.Issue{ |
|
|
|
|
RepoID: repo.ID, |
|
|
|
|
Index: repo.NextIssueIndex(), |
|
|
|
@ -690,6 +700,8 @@ func CompareAndPullRequestPost(ctx *context.Context, form auth.CreateIssueForm)
|
|
|
|
|
MergeBase: prInfo.MergeBase, |
|
|
|
|
Type: models.PULL_REQUEST_GOGS, |
|
|
|
|
} |
|
|
|
|
// FIXME: check error in the case two people send pull request at almost same time, give nice error prompt
|
|
|
|
|
// instead of 500.
|
|
|
|
|
if err := models.NewPullRequest(repo, pullIssue, labelIDs, attachments, pullRequest, patch); err != nil { |
|
|
|
|
ctx.Handle(500, "NewPullRequest", err) |
|
|
|
|
return |
|
|
|
|