---
name: "fsvs-url-format"
section: "5"
platform: "linux"
package: "fsvs"
version: "1.2.12-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/fsvs-url-format"
---

# fsvs-url-format(5)

FSVS can use more than one URL; the given URLs are overlaid according to their priority. FSVS can use more than one URL; the given URLs are overlaid 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 be last. Example: or, using abbreviations, Please mind that the full syntax is in lower case, whereas the abbreviations are capitalized! 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() )

## NAME

Format of URLs -

FSVS can use more than one URL; the given URLs are *overlaid* according to their priority.   FSVS can use more than one URL; the given URLs are *overlaid* 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

```
   ['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.

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! \
\
  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.**

**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.)**

## 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.**

**The default target is** `HEAD`**.**

**Note:**

**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 every time!)**

## There's an additional internal number - why that?

**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 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.**

## Author

**Generated automatically by Doxygen for fsvs from the source code.**
