Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Slight editorial changes to sync documentation, fixing spelling errors. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
4038525bc57ebf41442110e335b616d9 |
| User & Date: | aku 2007-09-10 02:21:46.000 |
Context
|
2007-09-12
| ||
| 04:19 | Added navbar to all pages, linking back to the index. Fixed typo in the index page. ... (check-in: 469002ccdf user: aku tags: trunk) | |
|
2007-09-11
| ||
| 02:25 | Add the "undo" and "redo" commands. Untested at this point so don't try to use them yet. ... (check-in: a36177bcce user: drh tags: trunk) | |
|
2007-09-10
| ||
| 02:21 | Slight editorial changes to sync documentation, fixing spelling errors. ... (check-in: 4038525bc5 user: aku tags: trunk) | |
| 00:48 | Fix a C++-ism in the timeline module. ... (check-in: 9a76119307 user: drh tags: trunk) | |
Changes
Changes to www/sync.html.
| ︙ | ︙ | |||
100 101 102 103 104 105 106 |
one or more HTTP requests as described in the previous section. This
section details the "x-fossil" content type.</p>
<h3>2.1 Line-oriented Format</h3>
<p>The x-fossil content type consists of zero or more "cards". Cards
are separate by the newline character ("\n"). Leading and trailing
| | | | 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
one or more HTTP requests as described in the previous section. This
section details the "x-fossil" content type.</p>
<h3>2.1 Line-oriented Format</h3>
<p>The x-fossil content type consists of zero or more "cards". Cards
are separate by the newline character ("\n"). Leading and trailing
whitespace on a card is ignored. Blank cards are ignored.</p>
<p>Each card is divided into zero or more space separated tokens.
The first token on each card is the operator. Subsequent tokens
are arguments. The set of operators understood by servers is slightly
different from the operators understood by clients, though the two
are very similar.</p>
<h3>2.2 Login Cards</h3>
<p>Every message from client to server begins with one or more login
cards. Each login card has the following format:</p>
<blockquote>
<b>login</b> <i>userid nonce signature</i>
</blockquote>
<p>The userid is the name of the user that is requesting service
|
| ︙ | ︙ | |||
145 146 147 148 149 150 151 | <blockquote> <b>file</b> <i>uuid size</i> <b>\n</b> <i>content</i><br> <b>file</b> <i>uuid delta-uuid size</i> <b>\n</b> <i>content</i> </blockquote> <p>File cards are different from all other cards in that they followed by in-line "payload" data. The content of the file | | | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | <blockquote> <b>file</b> <i>uuid size</i> <b>\n</b> <i>content</i><br> <b>file</b> <i>uuid delta-uuid size</i> <b>\n</b> <i>content</i> </blockquote> <p>File cards are different from all other cards in that they followed by in-line "payload" data. The content of the file or the file delta consists of the first <i>size</i> bytes of the x-fossil content that immediately follow the newline that terminates the file card. No other cards have this characteristic. </p> <p>The first argument of a file card is the UUID of the file that is being transferred. The UUID is the lower-case hexadecimal representation of the SHA1 hash of the entire file content. |
| ︙ | ︙ | |||
292 293 294 295 296 297 298 | file as a "phantom". A repository will typically create a phantom when it receives an igot card for a file that it does not hold or when it receives a file card that references a delta source that it does not hold. When a server is generating its reply or when a client is generating a new request, it will usually send gimme cards for every phantom that it holds.</p> | | | | | | | | 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 |
file as a "phantom". A repository will typically create a phantom when
it receives an igot card for a file that it does not hold or when it
receives a file card that references a delta source that it does not
hold. When a server is generating its reply or when a client is
generating a new request, it will usually send gimme cards for every
phantom that it holds.</p>
<p>A cluster is a special file that tells of the existence of other
files. Any file in the repository that follows the syntactic rules
of a cluster is considered a cluster.</p>
<p>A cluster is a line oriented file. Each line of a cluster
is a card. The cards are separated by the newline ("\n") character.
Each card consists of a single character card type, a space, and a
single argument. No extra whitespace and no trailing or leading
whitespace is allowed. All cards in the cluster must occur in
strict lexicographical order.</p>
<p>A cluster consists of one or more "M" cards followed by a single
"Z" card. Each M card holds an argument which is a UUID for a file
in the repository. The Z card has a single argument which is the
lower-case hexadecimal representation of the MD5 checksum of all
preceding M cards up to and included the newline character that
occurred just before the Z that starts the Z card.</p>
<p>Any file that does not match the specifications of a cluster
exactly is not a cluster. There must be no extra whitespace in
the file. There must be one or more M cards. There must be a
single Z card with a correct MD5 checksum. And all cards must
be in strict lexicographical order.</p>
<h3>3.1 The Unclustered Table</h3>
<p>Every repository maintains a table named "<b>unclustered</b>"
which records the identity of every file and phantom it holds that is not
mentioned in a cluster. The entries in the unclustered table can
be thought of as leaves on a tree of files. Some of the unclustered
files will be clusters. Those clusters may contain other clusters,
which might contain still more clusters, and so forth. Beginning
with the files in the unclustered table, one can follow the chain
of clusters to find every file in the repository.</p>
|
| ︙ | ︙ |