FSVS-URL-FORMAT(5)
🎀 NAME 🎀
Format of URLs — like, the whole vibe of how fsvs reads a URL 💖
Okay bestie, sit down, grab a boba, because this one's actually iconic. This is the fsvs manual page, page 5 of the URL format saga, and it's giving exactly what you need to know.
FSVS can use more than one URL; the given URLs are overlaid according to their priority. (Yes, that's the whole point, and yes, it's said twice in the original, so I'm saying it twice too, because it's that important 💅)
For easier managing they get a name, and can optionally take a target revision.
Such an extended URL has the form
['name:'{name},]['target:'{t-rev},]['prio:'{prio},]URL
where URL is a standard URL known by subversion — something like http://...., svn://... or svn+ssh://.... 🦋
The arguments before the URL are optional and can be in any order; the URL must be last. Periodt. The URL goes last, no exceptions, don't argue with me 🔥
Example:
name:perl,prio:5,svn://...
or, using abbreviations,
N:perl,P:5,T:324,svn://...
Please mind that the full syntax is in lower case, whereas the abbreviations are capitalized! Like,name:is lowercase butN:is uppercase — do not mix these up, I'm begging 🙈
Internally the : is looked for, and if the part before this character is a known keyword, it is used.
As soon as we find an unknown keyword we treat it as an URL, ie. stop processing.
The priority is in reverse numeric order — the lower the number, the higher the priority. (See url__current_has_precedence() )
✨ Why a priority? ✨
When we have to overlay several URLs, we have to know which URL takes precedence — in case the same entry is in more than one. (Which is not recommended!)
🫶 Why a name? 🫶
We need a name, so that the user can say 'commit all outstanding changes to the repository at URL x', without having to remember the full URL. After all, this URL should already be known, as there's a list of URLs to update from. It's giving convenience, and we love that for us 💜
You should only use alphanumeric characters and the underscore here; or, in other words, \w or [a-zA-Z0-9_]. (Whitespace, comma and semicolon get used as separators.) So like, don't go rogue with random symbols, bestie, the commas and semicolons are taken ðŸ˜
🌸 What can I do with the target revision? 🌸
Using the target revision you can tell fsvs that it should use the given revision number as destination revision — so update would go there, but not further. Please note that the given revision number overrides the -r parameter; this sets the destination for all URLs. So if you set a target on one URL, that's your destination, no cap.
The default target is HEAD.
Note: In subversion you can enterURL@revision— this syntax may be implemented infsvstoo. (But it has the problem, that as soon as you have a@in the URL, you must give the target revision every time!)
🧚 There's an additional internal number — why that? 🧚
This internal number is not for use by the user. Nope, hands off, it's not yours 🙅
It is just used to have an unique identifier for an URL, without using the full string.
On my system the package names are on average 12.3 characters long (1024 packages with 12629 bytes, including newline):
COLUMNS=200 dpkg-query -l | cut -c5- | cut -f1 -d' ' | wc
So if we store an id of the url instead of the name, we have approx. 4 bytes per entry (length of strings of numbers from 1 to 1024). Whereas using the needs name 12.3 characters, that's a difference of 8.3 per entry.
Multiplied with 150 000 entries we get about 1MB difference in filesize of the dir-file. Not really small ... 😳
And using the whole URL would inflate that much more.
Currently we use about 92 bytes per entry. So we'd (unnecessarily) increase the size by about 10%.
That's why there's an url_t::internal_number. Math ate and left no crumbs 💅
👑 Author 👑
Generated automatically by Doxygen for fsvs from the source code. (Not a human, not a bestie, just a tool doing its little job 🎀)
And that's the whole page, bestie! Sending you off with the vibe check: this was the fsvs manual, URL format, page 5 — version trunk:2424, dated 11 Mar 2010. Slay, go configure your URLs, you've got this 💖✨🦋
📦 where this page comes from
- debian bookworm: fsvs 1.2.9-2 · GPL-3.0-only
- debian trixie: fsvs 1.2.12-1+b1 · GPL-3.0-only
- ubuntu jammy: fsvs 1.2.9-2 · GPL-3.0-only
- ubuntu jammy: fsvs 1.2.9-2ubuntu0.22.04.1 · GPL-3.0-only
- ubuntu noble: fsvs 1.2.12-1build2 · GPL-3.0-only
- ubuntu questing: fsvs 1.2.12-1build2
- ubuntu resolute: fsvs 1.2.12-3 · GPL-3.0-only
- ubuntu stonking: fsvs 1.2.12-4 · GPL-3.0-only
- 💖 girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms