diff --git a/README-uri-scheme.md b/README-uri-scheme.md new file mode 100644 index 000000000..b80505885 --- /dev/null +++ b/README-uri-scheme.md @@ -0,0 +1,64 @@ +URI scheme +========== + +Browsing namespace +------------------ + +### Global + +To be anchored where browsing starts (e.g., at /browse) + +* /revision/: show commit information + +* /directory/: show directory information (including ls) + +* /directory//path/to/file-or-dir: ditto, but for dir pointed by path + + - note: this is the same as /dir/, where is the + sha1_git ID of the dir pointed by path + +* /content/[:]: show content information + + - content is specified by HASH, according to HASH_ALGO, where HASH_ALGO is + one of: sha1, sha1_git, sha256. This means that several different URLs (at + least one per HASH_ALGO) will point to the same content + - HASH_ALGO defaults to "sha1" (?) + +* /release/: show release information + +* /person/: show person information + +* /origin/: show origin information + +* /project/: show project information + +* /organization/: show organization information + +### Occurrence + +Origin/Branch do not contain `|` so it is used as a terminator. +Origin is . +Timestamp is one of: latest or an ISO8601 date (TODO: decide the time matching +policy). + +* /directory//|/|/path/to/file-or-dir + + - Same as /directory/ but looking up sha1 git using origin and + branch at a given timestamp + +* /revision//|/ + + - Same as /revision/ but looking up sha1 git using origin and + branch at a given timestamp + +* /revision//| + + - Show all branches of origin at a given timestamp + +* /revision//|/| + + - Show all revisions (~git log) of origin and branch at a given timestamp + + +Search namespace +----------------