Fossil

Check-in [51c3f3b670]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update the file format documentation to make it clear that a Z-card is required on all artifacts.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 51c3f3b6709bf630b9016f9fd2011fe816ad90cd
User & Date: drh 2011-02-25 17:59:25.611
Context
2011-02-26
15:32
Extend the file format for manifests to include the Q-card for recording cherry-picks. Parse and ignore these cards for now. check-in: 7fcbbb1da0 user: drh tags: trunk
2011-02-25
17:59
Update the file format documentation to make it clear that a Z-card is required on all artifacts. check-in: 51c3f3b670 user: drh tags: trunk
17:49
Remove a superfluous ';' from the end of artifact listings. check-in: a48c661d9a user: drh tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to www/fileformat.wiki.
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
symbolic name when the check-in is intended to start a new branch.

Each manifest has a single U-card.  The argument to the U-card is
the login of the user who created the manifest.  The login name
is encoded using the same character escapes as is used for the
check-in comment argument to the C-card.

A manifest has an optional Z-card as its last line.  The argument
to the Z-card is a 32-character lowercase hexadecimal MD5 hash
of all prior lines of the manifest up to and including the newline 
character that immediately precedes the "Z".  The Z-card is just
a sanity check to prove that the manifest is well-formed and
consistent.

A sample manifest from Fossil itself can be seen
[/artifact/28987096ac | here].

<a name="cluster"></a>







|


|







198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
symbolic name when the check-in is intended to start a new branch.

Each manifest has a single U-card.  The argument to the U-card is
the login of the user who created the manifest.  The login name
is encoded using the same character escapes as is used for the
check-in comment argument to the C-card.

A manifest must have a single Z-card as its last line.  The argument
to the Z-card is a 32-character lowercase hexadecimal MD5 hash
of all prior lines of the manifest up to and including the newline 
character that immediately precedes the "Z".  The Z-card is 
a sanity check to prove that the manifest is well-formed and
consistent.

A sample manifest from Fossil itself can be seen
[/artifact/28987096ac | here].

<a name="cluster"></a>
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
</blockquote>

A cluster contains one or more "M" cards followed by a single "Z"
line.  Each M card has a single argument which is the artifact ID of 
another artifact in the repository.  The Z card work exactly like
the Z card of a manifest.  The argument to the Z card is the
lower-case hexadecimal representation of the MD5 checksum of all
prior cards in the cluster.  Note that the Z card is required
on a cluster.

An example cluster from Fossil can be seen
[/artifact/d03dbdd73a2a8 | here].

<a name="ctrl"></a>
<h2>3.0 Control Artifacts</h2>








|
<







244
245
246
247
248
249
250
251

252
253
254
255
256
257
258
</blockquote>

A cluster contains one or more "M" cards followed by a single "Z"
line.  Each M card has a single argument which is the artifact ID of 
another artifact in the repository.  The Z card work exactly like
the Z card of a manifest.  The argument to the Z card is the
lower-case hexadecimal representation of the MD5 checksum of all
prior cards in the cluster.  The Z-card is required.


An example cluster from Fossil can be seen
[/artifact/d03dbdd73a2a8 | here].

<a name="ctrl"></a>
<h2>3.0 Control Artifacts</h2>

305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
to a check-in will override the check-in comment of that check-in
for display purposes.  The "user" tag overrides the name of the
check-in user.  The "date" tag overrides the check-in date.
The "branch" tag sets the name of the branch that at check-in
belongs to.  Symbolic tags begin with the "sym-" prefix.

The U card is the name of the user that created the control 
artifact.  The Z card is the usual artifact checksum.

An example control artifacts can be seen [/info/9d302ccda8 | here].


<a name="wikichng"></a>
<h2>4.0 Wiki Pages</h2>








|







304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
to a check-in will override the check-in comment of that check-in
for display purposes.  The "user" tag overrides the name of the
check-in user.  The "date" tag overrides the check-in date.
The "branch" tag sets the name of the branch that at check-in
belongs to.  Symbolic tags begin with the "sym-" prefix.

The U card is the name of the user that created the control 
artifact.  The Z card is the usual required artifact checksum.

An example control artifacts can be seen [/info/9d302ccda8 | here].


<a name="wikichng"></a>
<h2>4.0 Wiki Pages</h2>

332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<b>Z</b> <i>checksum</i>
</blockquote>

The D card is the date and time when the wiki page was edited.
The P card specifies the parent wiki pages, if any.  The L card
gives the name of the wiki page.  The U card specifies the login
of the user who made this edit to the wiki page.  The Z card is
the usual checksum over the either artifact.

The W card is used to specify the text of the wiki page.  The
argument to the W card is an integer which is the number of bytes
of text in the wiki page.  That text follows the newline character
that terminates the W card.  The wiki text is always followed by one
extra newline.








|







331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
<b>Z</b> <i>checksum</i>
</blockquote>

The D card is the date and time when the wiki page was edited.
The P card specifies the parent wiki pages, if any.  The L card
gives the name of the wiki page.  The U card specifies the login
of the user who made this edit to the wiki page.  The Z card is
the usual checksum over the either artifact and is required.

The W card is used to specify the text of the wiki page.  The
argument to the W card is an integer which is the number of bytes
of text in the wiki page.  That text follows the newline character
that terminates the W card.  The wiki text is always followed by one
extra newline.

359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
<b>K</b> <i>ticket-id</i><br />
<b>U</b> <i>user-name</i><br />
<b>Z</b> <i>checksum</i>
</blockquote>

The D card is the usual date and time stamp and represents the point
in time when the change was entered.  The U card is the login of the
programmer who entered this change.  The Z card is the checksum over
the entire artifact.

Every ticket has a distinct ticket-id:
40-character lower-case hexadecimal number.
The ticket-id is given in the K-card.  A ticket exists if it contains one or
more changes.  The first "change" to a ticket is what brings the
ticket into existence.







|







358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
<b>K</b> <i>ticket-id</i><br />
<b>U</b> <i>user-name</i><br />
<b>Z</b> <i>checksum</i>
</blockquote>

The D card is the usual date and time stamp and represents the point
in time when the change was entered.  The U card is the login of the
programmer who entered this change.  The Z card is the required checksum over
the entire artifact.

Every ticket has a distinct ticket-id:
40-character lower-case hexadecimal number.
The ticket-id is given in the K-card.  A ticket exists if it contains one or
more changes.  The first "change" to a ticket is what brings the
ticket into existence.
422
423
424
425
426
427
428

429
430
431
432
433
434
435
A single D card is required to give the date and time when the attachment
was applied.

A single U card gives the name of the user to added the attachment.
If an attachment is added anonymously, then the U card may be omitted.

The Z card is the usual checksum over the rest of the attachment artifact.



<a name="event"></a>
<h2>7.0 Events</h2>

An event artifact associates a timeline comment and a page of text
(similar to a wiki page) with a point in time.  Events can be used







>







421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
A single D card is required to give the date and time when the attachment
was applied.

A single U card gives the name of the user to added the attachment.
If an attachment is added anonymously, then the U card may be omitted.

The Z card is the usual checksum over the rest of the attachment artifact.
The Z card is required.


<a name="event"></a>
<h2>7.0 Events</h2>

An event artifact associates a timeline comment and a page of text
(similar to a wiki page) with a point in time.  Events can be used
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497

The optional U card gives name of the user who entered the event.

A single W card provides wiki text for the document associated with the
event.  The format of the W card is exactly the same as for a 
[#wikichng | wiki artifact].

The Z card is the usual checksum over the rest of the attachment artifact.


<a name="summary"></a>
<h2>8.0 Card Summary</h2>

The following table summaries the various kinds of cards that
appear on Fossil artifacts:







|







483
484
485
486
487
488
489
490
491
492
493
494
495
496
497

The optional U card gives name of the user who entered the event.

A single W card provides wiki text for the document associated with the
event.  The format of the W card is exactly the same as for a 
[#wikichng | wiki artifact].

The Z card is the required checksum over the rest of the artifact.


<a name="summary"></a>
<h2>8.0 Card Summary</h2>

The following table summaries the various kinds of cards that
appear on Fossil artifacts: