mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-16 04:42:51 -05:00
Ambiguous compare URL results in 404 #6978
Closed
opened 2025-11-02 07:12:41 -06:00 by GiteaMirror
·
10 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
type/bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#6978
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @flozzone on GitHub (Mar 7, 2021).
[x]):Description
There is a specific structure of repositories and organizations we need in order to complete our work. First I'll explain our use case. In Steps to reproduce I'll show how I could create the organization/repository structure, exactly how I was expecting it to be. However when trying to create a specific PR the feature-branch is not listed, shown in Steps to show that feature branch is not listed. Finally Steps to show 404 and how to adapt compare URL shows how I got the 404 page and how I adapted the compare URL to get the desired PR.
The repository structure is available at https://try.gitea.io. If you'd like me to create this structure somewhere else, just tell me.
Use case
wemirror the company's repo to our gitea server insidecompany-orgorganizationwefork their repository andwepush to our customizationwe/custom-projectrepowecreate PR from the mirror of the company's public repocompany-org/projectto our customizationour-org/custom-projectto merge upstream changeswepay the company to develop custom features based on our customized code and thus the company gets access to theircompany-orgorganizationcompanypushes to a forkcompany-org/custom-projectof our customized repowecreate PR from company's custom repocompany-org/custom-projectto our customizationour-org/custom-projectAt the end we would like to have the following fork chain:
company-org/project(mirror) <-our-org/custom-project<-company-org/custom-projectSteps to reproduce
company/projectcompany/projecttoour-org/custom-projectour-org/custom-projecttothis-is-me/custom-project[1]this-is-me/custom-projecttocompany-org[1]payed_featuretocompany-org/custom-projectrepocompany-org/custom-projectSteps to show that feature branch is not listed
7a. Select
mainbranch8a. Click
Create Pull Request9a. Open
pull fromdropdown10a.
payed-featureis not listedSteps to show 404 and how to adapt compare URL
7b. Select
payed-featurebranch8b. Click
Create Pull Request-> 4049b. Change compare URL from https://try.gitea.io/our-org/custom-project/compare/main...company-org:payed-feature to https://try.gitea.io/our-org/custom-project/compare/main...company-org/custom-project:payed-feature -> Compare is correctly shown
[1] Steps 3. and 4. were required in order to create a fork in the same organization in which the mirror is located. Creating
the fork directly was not possible since the owner was not listed when forking.
Thoughts and questions
Is this 404 occurring because we have the mirror and a fork of same repository inside one organization? Why is the adapted compare URL working. IMHO this is a popular use case (despite the fact that no one reported this before) or is there another way to accomplish what I want?
@zeripath commented on GitHub (Mar 7, 2021):
the simple issue is that the shortcut url: https://try.gitea.io/our-org/custom-project/compare/main...company-org:payed-feature is looking for the payed-feature branch in company-org/project not company-org/custom-project.
How would gitea know that you meant company-org/custom-project?
@flozzone commented on GitHub (Mar 7, 2021):
This is what I thought, but gitea should now that I need a PR from
company-org/custom-projectsince I selected it (see step 6) and clickedCreate Pull Request. I am not constructing the compare URL myself.For me it seems that the syntax which is used in the compare URL/view is ambiguous: ORG:BRANCH is not enough to identify a branch in my situation. The current syntax works well when the forked-from repo is owned by another organization with the assumption that it has the same name. With my structure I am hitting the limit to have just one fork of a repo in the same organization, this is why I needed step 3,4 to move the repo.
But I think this could be work around by first checking for ambiguity and in case use the full syntax: ORG/REPO:BRANCH. This is actually done in case I select some branch from
company-org/project(See the screenshot below)But somehow not all branches are shown. The
payed-featureis not in the list:while it should be there:
@zeripath commented on GitHub (Mar 8, 2021):
So the simplifying code is getting things wrong in this case. The trouble is I can't remember where I put it.
@zeripath commented on GitHub (Mar 8, 2021):
OK there is no way we can ever use the simplified url in this case - however, that seems like an overkill in the general case - because most people will not be doing this kind of naughty behaviour...
Aha. The trick is if the baserepo is a fork then that is the only way you could need the full repo id.
sorts out the initial 404
@zeripath commented on GitHub (Mar 8, 2021):
This should make 1.14 but likely rc2
@flozzone commented on GitHub (Mar 9, 2021):
Thanks @zeripath for your fast reaction and patch. Since I was always using the docker container you provided, I would have to build it on my own and push it to our server. Easier would be some kind of nightly build to test this out. Is there something similar with your provided patch?
@zeripath commented on GitHub (Mar 9, 2021):
the associated PR touches two templates only and which can be placed in your custom folder as per https://docs.gitea.io/en-us/customizing-gitea/
@flozzone commented on GitHub (Mar 9, 2021):
I've tryied it out, but it requires other templates in the $GITEA_CUSTOM path, an error message said. So I aborted testing.
@flozzone commented on GitHub (Mar 9, 2021):
But since you are releasing so frequently, I guess I don't have to wait so long for this to get released.
@CL-Jeremy commented on GitHub (Mar 14, 2021):
This won't be merged until v1.14.0 (or a release candidate) is released.
You can get the template files from: https://github.com/CL-Jeremy/gitea/tree/backport-fix-14921/templates/repo. Download these two raw files: home.tmpl and diff/compare.tmpl, put them in
$GITEA_CUSTOM/templates/repoand you are good to go.These files are generated with: