Opened 9 years ago
Closed 9 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 9 years ago by
comment:2 Changed 9 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 9 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 9 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 9 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 9 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 9 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 9 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 9 years ago by
Owner: | changed from somebody to mevenson |
---|
comment:10 Changed 9 years ago by
Owner: | changed from mevenson to ehuelsmann |
---|
comment:11 Changed 9 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 9 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: