|  | @@ -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
 |