Opened 10 years ago
Closed 10 years ago
#16 closed task (fixed)
Establish HTTP redirect to GitLab for trac.common-lisp.net/<project>/browser
Reported by: | ehuelsmann | Owned by: | ehuelsmann |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | component1 | Version: | |
Keywords: | Cc: | ||
Parent Tickets: | 12 |
Description
This ticket requires to identify
- the list of affected projects
- the url structure for the redirection
Change History (12)
comment:1 Changed 10 years ago by
comment:2 Changed 10 years ago by
Priority remains 'major', since among the projects listed, there are the cmucl and oct repositories which are used by one of the most active users that *I* know of (Raymond Toy).
comment:3 Changed 10 years ago by
We need to understand the Trac URL structure for the following scenarios:
- Browsing HEAD of the default branch
- Browsing HEAD of a named branch
- Browsing a specific commit as a uni-diff (full commit)
- Browsing a specific commit as a uni-diff (single file within commit)
- Browsing the 2nd to 4th item with blamed content
- Browsing the 2nd to 4th item with raw content
comment:4 Changed 10 years ago by
The Trac URL structure houses a problem: the URL structure for tree browsing is https://trac.common-lisp.net/<project>/browser/<repository-without-.git-extension-if-not-default>/<within-repo-path>
E.g.
- A url for the bin directory in the default repository for the cmucl project: https://trac.common-lisp.net/cmucl/browser/bin
- A url for the cmucl-www directory in the cmucl-www repository for the cmucl project: https://trac.common-lisp.net/cmucl/browser/cmucl-www/cmucl-www
URLs for directory and file content are the same (which poses an issue, because the receiver distinguishes between directory (tree) and file (blob) content browsing).
comment:5 Changed 10 years ago by
Trac URL structure investigation:
1. Browsing HEAD of default branch | Uses the structure described in comment 4 |
2. Browsing HEAD of a named branch | Transforms the branch name to a commit hash and browses that |
3. Browsing a specific commit as a uni-diff (full commit) | https://trac.common-lisp.net/cmucl/changeset/<commit-hash>/<repository-if-not-default> |
4. Browsing a specific commit as a uni-diff (single file within commit) | https://trac.common-lisp.net/cmucl/changeset/<commit-hash>/<repository-if-not-default>/<within-repo-path> |
5. Browsing the 2nd to 4th item with blamed content | adds 'annotate=blame' query parameter |
6. Browsing the 2nd to 4th item with raw content | https://trac.common-lisp.net/<project>/export/<commit-hash>/<repository-if-not-default>/<within-repo-path> |
comment:6 Changed 10 years ago by
Ok. More investigation: out of the 4 projects, only 1 uses a secondary repository (cmucl has the cmucl-www repository as its secondary).
comment:7 Changed 10 years ago by
More Trac URL structure:
7. Revision log (for a path) | https://trac.common-lisp.net/<project>/log/<repository-if-not-default>/<within-repo-path> |
8. Raw unidiff | Adds 'format=diff' at the end of a changeset URL |
comment:8 Changed 10 years ago by
This needs a rewritemap, implemented as:
RewriteMap tracmap prg:/usr/local/bin/trac-rewritemap
And the following rewrite rule:
RewriteRule /(cmucl|oct|sheeple|clfswm)/browser/(.*) ${tracmap:$2}
comment:9 Changed 10 years ago by
Owner: | changed from somebody to mevenson |
---|
comment:10 Changed 10 years ago by
Owner: | changed from mevenson to ehuelsmann |
---|
comment:11 Changed 10 years ago by
Implemented 'tracgit-rewritemap'; can be found in /home/ehuelsmann/clo-software. The URL structure is a bit different from what I expected; meaning that the rewrite rule should become:
RewriteRule /(cmucl|oct|sheeple|clfswm)/(browser|export)/(.*) ${tracmap:$1?$2?$3}
comment:12 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
The list of affected projects:
Conclusion: only 4 trac projects are affected by their repositories moving to GitLab?. All of these projects have their repository directory in their public_html folder, so, these repositories *will* in fact be moved to GitLab? and published through the repository browser there.
Evidence: