mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Support open compare page directly (#17975)
* Support open compare page directly * simple code * Some improvements Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
		@@ -215,21 +215,19 @@ func ParseCompareInfo(ctx *context.Context) *CompareInfo {
 | 
				
			|||||||
	)
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	infoPath = ctx.Params("*")
 | 
						infoPath = ctx.Params("*")
 | 
				
			||||||
	infos := strings.SplitN(infoPath, "...", 2)
 | 
						var infos []string
 | 
				
			||||||
 | 
						if infoPath == "" {
 | 
				
			||||||
 | 
							infos = []string{baseRepo.DefaultBranch, baseRepo.DefaultBranch}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							infos = strings.SplitN(infoPath, "...", 2)
 | 
				
			||||||
		if len(infos) != 2 {
 | 
							if len(infos) != 2 {
 | 
				
			||||||
		infos = []string{baseRepo.DefaultBranch, infoPath}
 | 
								if infos = strings.SplitN(infoPath, "..", 2); len(infos) == 2 {
 | 
				
			||||||
		if strings.Contains(infoPath, "..") {
 | 
					 | 
				
			||||||
			infos = strings.SplitN(infoPath, "..", 2)
 | 
					 | 
				
			||||||
				ci.DirectComparison = true
 | 
									ci.DirectComparison = true
 | 
				
			||||||
				ctx.Data["PageIsComparePull"] = false
 | 
									ctx.Data["PageIsComparePull"] = false
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									infos = []string{baseRepo.DefaultBranch, infoPath}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	if len(infos) != 2 {
 | 
					 | 
				
			||||||
		log.Trace("ParseCompareInfo[%d]: not enough compared branches information %s", baseRepo.ID, infos)
 | 
					 | 
				
			||||||
		ctx.NotFound("CompareAndPullRequest", nil)
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.Data["BaseName"] = baseRepo.OwnerName
 | 
						ctx.Data["BaseName"] = baseRepo.OwnerName
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -702,6 +702,7 @@ func RegisterRoutes(m *web.Route) {
 | 
				
			|||||||
		m.Group("/milestone", func() {
 | 
							m.Group("/milestone", func() {
 | 
				
			||||||
			m.Get("/{id}", repo.MilestoneIssuesAndPulls)
 | 
								m.Get("/{id}", repo.MilestoneIssuesAndPulls)
 | 
				
			||||||
		}, reqRepoIssuesOrPullsReader, context.RepoRef())
 | 
							}, reqRepoIssuesOrPullsReader, context.RepoRef())
 | 
				
			||||||
 | 
							m.Get("/compare", repo.MustBeNotEmpty, reqRepoCodeReader, repo.SetEditorconfigIfExists, ignSignIn, repo.SetDiffViewStyle, repo.SetWhitespaceBehavior, repo.CompareDiff)
 | 
				
			||||||
		m.Combo("/compare/*", repo.MustBeNotEmpty, reqRepoCodeReader, repo.SetEditorconfigIfExists).
 | 
							m.Combo("/compare/*", repo.MustBeNotEmpty, reqRepoCodeReader, repo.SetEditorconfigIfExists).
 | 
				
			||||||
			Get(ignSignIn, repo.SetDiffViewStyle, repo.SetWhitespaceBehavior, repo.CompareDiff).
 | 
								Get(ignSignIn, repo.SetDiffViewStyle, repo.SetWhitespaceBehavior, repo.CompareDiff).
 | 
				
			||||||
			Post(reqSignIn, context.RepoMustNotBeArchived(), reqRepoPullsReader, repo.MustAllowPulls, bindIgnErr(forms.CreateIssueForm{}), repo.SetWhitespaceBehavior, repo.CompareAndPullRequestPost)
 | 
								Post(reqSignIn, context.RepoMustNotBeArchived(), reqRepoPullsReader, repo.MustAllowPulls, bindIgnErr(forms.CreateIssueForm{}), repo.SetWhitespaceBehavior, repo.CompareAndPullRequestPost)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user