mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18: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("*")
 | 
			
		||||
	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 {
 | 
			
		||||
		infos = []string{baseRepo.DefaultBranch, infoPath}
 | 
			
		||||
		if strings.Contains(infoPath, "..") {
 | 
			
		||||
			infos = strings.SplitN(infoPath, "..", 2)
 | 
			
		||||
			if infos = strings.SplitN(infoPath, "..", 2); len(infos) == 2 {
 | 
			
		||||
				ci.DirectComparison = true
 | 
			
		||||
				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
 | 
			
		||||
 
 | 
			
		||||
@@ -702,6 +702,7 @@ func RegisterRoutes(m *web.Route) {
 | 
			
		||||
		m.Group("/milestone", func() {
 | 
			
		||||
			m.Get("/{id}", repo.MilestoneIssuesAndPulls)
 | 
			
		||||
		}, 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).
 | 
			
		||||
			Get(ignSignIn, repo.SetDiffViewStyle, repo.SetWhitespaceBehavior, repo.CompareDiff).
 | 
			
		||||
			Post(reqSignIn, context.RepoMustNotBeArchived(), reqRepoPullsReader, repo.MustAllowPulls, bindIgnErr(forms.CreateIssueForm{}), repo.SetWhitespaceBehavior, repo.CompareAndPullRequestPost)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user