Format of URLs -
FSVS can use more than one URL; the given URLs are overlaid
their priority. FSVS can use more than one URL; the given URLs are
according to their priority.
For easier managing they get a name, and can optionally take a target revision.
Such an extended URL
has the form
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
or, using abbreviations,
Please mind that the full syntax is in lower case, whereas the abbreviations are
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
The priority is in reverse numeric order - the lower the number, the higher the
priority. (See url__current_has_precedence() )
When we have to overlay several URLs, we have to know which
precedence - in case the same entry is in more than one. (Which is
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
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
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.
The default target is HEAD.
In subversion you can enter URL@revision -
this syntax may be implemented in fsvs too. (But it has the problem, that as
soon as you have a @ in the URL, you must give the target revision
This internal number is not for use by the user.
It is just used to have an unique identifier for an URL, without using the full
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
Generated automatically by Doxygen for fsvs from the source code.