Fossil

Check-in [b78d1a67b7]
Login

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

Overview
Comment:Expand the scope of the new Remark artifact so that it may be attached to either a check-in or a branch.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | remarks-on-checkins
Files: files | file ages | folders
SHA1: b78d1a67b732c9200515b9ff973c8518b69c2ec6
User & Date: drh 2017-01-10 19:08:09.251
Context
2017-01-10
19:09
Merge changes from trunk. check-in: 43fa1ecc73 user: drh tags: remarks-on-checkins
19:08
Expand the scope of the new Remark artifact so that it may be attached to either a check-in or a branch. check-in: b78d1a67b7 user: drh tags: remarks-on-checkins
2017-01-08
21:04
A couple more typo fixes in the file format document. check-in: 290404ec37 user: mistachkin tags: remarks-on-checkins
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/manifest.c.
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  double rDate;         /* Date and time from D card.  0.0 if no D card. */
  char *zUser;          /* Name of the user from the U card. */
  char *zRepoCksum;     /* MD5 checksum of the baseline content.  R card. */
  char *zWiki;          /* Text of the wiki page.  W card. */
  char *zWikiTitle;     /* Name of the wiki page. L card. */
  char *zMimetype;      /* Mime type of wiki or comment text.  N card.  */
  double rEventDate;    /* Date of an event.  E card. */
  char *zRemCkin;       /* UUID of checkin to which remark attached. G card */
  char *zEventId;       /* UUID for an event.  E card. */
  char *zTicketUuid;    /* UUID for a ticket. K card. */
  char *zAttachName;    /* Filename of an attachment. A card. */
  char *zAttachSrc;     /* UUID of document being attached. A card. */
  char *zAttachTarget;  /* Ticket or wiki that attachment applies to.  A card */
  int nFile;            /* Number of F cards */
  int nFileAlloc;       /* Slots allocated in aFile[] */







|







76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  double rDate;         /* Date and time from D card.  0.0 if no D card. */
  char *zUser;          /* Name of the user from the U card. */
  char *zRepoCksum;     /* MD5 checksum of the baseline content.  R card. */
  char *zWiki;          /* Text of the wiki page.  W card. */
  char *zWikiTitle;     /* Name of the wiki page. L card. */
  char *zMimetype;      /* Mime type of wiki or comment text.  N card.  */
  double rEventDate;    /* Date of an event.  E card. */
  char *zRemTarget;     /* Checkin or branch to which remark attached. G card */
  char *zEventId;       /* UUID for an event.  E card. */
  char *zTicketUuid;    /* UUID for a ticket. K card. */
  char *zAttachName;    /* Filename of an attachment. A card. */
  char *zAttachSrc;     /* UUID of document being attached. A card. */
  char *zAttachTarget;  /* Ticket or wiki that attachment applies to.  A card */
  int nFile;            /* Number of F cards */
  int nFileAlloc;       /* Slots allocated in aFile[] */
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
      /*
      **     G <uuid>
      **
      ** The G card records the UUID of a check-in to which a remark is
      ** attached.
      */
      case 'G': {
        if( p->zRemCkin ) SYNTAX("more than one G-card");
        p->zRemCkin = next_token(&x, &sz);
        if( sz!=UUID_SIZE || !validate16(p->zRemCkin, UUID_SIZE) ){
          SYNTAX("malformed UUID on G-card");
        }
        break;
      }

      /*
      **     J <name> ?<value>?
      **
      ** Specifies a name value pair for ticket.  If the first character







|
|
|
<
<







579
580
581
582
583
584
585
586
587
588


589
590
591
592
593
594
595
      /*
      **     G <uuid>
      **
      ** The G card records the UUID of a check-in to which a remark is
      ** attached.
      */
      case 'G': {
        if( p->zRemTarget ) SYNTAX("more than one G-card");
        p->zRemTarget = next_token(&x, &sz);
        defossilize(p->zRemTarget);


        break;
      }

      /*
      **     J <name> ?<value>?
      **
      ** Specifies a name value pair for ticket.  If the first character
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926

  if( p->nCChild>0 ){
    if( p->zAttachName
     || p->zBaseline
     || p->zComment
     || p->rDate>0.0
     || p->zEventId
     || p->zRemCkin
     || p->nFile>0
     || p->nField>0
     || p->zTicketUuid
     || p->zWikiTitle
     || p->zMimetype
     || p->nParent>0
     || p->nCherrypick>0
     || p->zRepoCksum
     || p->nTag>0
     || p->zUser
     || p->zWiki
    ){
      SYNTAX("cluster contains a card other than M- or Z-");
    }
    if( !seenZ ) SYNTAX("missing Z-card on cluster");
    p->type = CFTYPE_CLUSTER;
  }else if( p->zRemCkin ){
    if( p->zAttachName ) SYNTAX("A-card in remark");
    if( p->zBaseline ) SYNTAX("B-card in remark");
    if( p->rDate<=0.0 ) SYNTAX("missing date on remark");
    if( p->zEventId ) SYNTAX("E-card in remark");
    if( p->nFile>0 ) SYNTAX("F-card in remark");
    if( p->nField>0 ) SYNTAX("J-card in remark");
    if( p->zTicketUuid ) SYNTAX("K-card in remark");







|
















|







893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924

  if( p->nCChild>0 ){
    if( p->zAttachName
     || p->zBaseline
     || p->zComment
     || p->rDate>0.0
     || p->zEventId
     || p->zRemTarget
     || p->nFile>0
     || p->nField>0
     || p->zTicketUuid
     || p->zWikiTitle
     || p->zMimetype
     || p->nParent>0
     || p->nCherrypick>0
     || p->zRepoCksum
     || p->nTag>0
     || p->zUser
     || p->zWiki
    ){
      SYNTAX("cluster contains a card other than M- or Z-");
    }
    if( !seenZ ) SYNTAX("missing Z-card on cluster");
    p->type = CFTYPE_CLUSTER;
  }else if( p->zRemTarget ){
    if( p->zAttachName ) SYNTAX("A-card in remark");
    if( p->zBaseline ) SYNTAX("B-card in remark");
    if( p->rDate<=0.0 ) SYNTAX("missing date on remark");
    if( p->zEventId ) SYNTAX("E-card in remark");
    if( p->nFile>0 ) SYNTAX("F-card in remark");
    if( p->nField>0 ) SYNTAX("J-card in remark");
    if( p->zTicketUuid ) SYNTAX("K-card in remark");
Changes to www/fileformat.wiki.
532
533
534
535
536
537
538
539

540

541
542

543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559



560
561
562
563
564
565
566
567
[#wikichng | wiki artifact].

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

<a name="remark"></a>
<h2>8.0 Remarks</h2>

A remark artifact holds textual remarks that are added to a check-in.

Remarks can hold expanded commentary about the check-in, notes from

code-reviews, information about problems discovered in the check-in,
or other auxiliary textual information about the check-in.

The remark artifact is a new artifact added to this specification in
early 2017.
The following cards are allowed on a remark artifact:

<blockquote>
<b>D</b> <i>time-and-date-stamp</i><br />
<b>G</b> <i>checkin-uuid</i><br />
<b>N</b> <i>mimetype</i><br />
<b>U</b> <i>user-name</i><br />
<b>W</b> <i>size</i> <b>\n</b> <i>text</i> <b>\n</b><br />
<b>Z</b> <i>checksum</i>
</blockquote>

A single D card is required to give the date and time when the
remark artifact was created.

A single G card specifies the check-in to which the remark is



attached.

The optional N card specifies the mimetype of the text of the remark
that is contained in the W card.  If the N card is omitted, then the
W card text mimetype is assumed to be text/x-fossil, which is the
Fossil wiki format.

A single W card provides wiki text for the document associated with the







|
>
|
>
|
|
>






|









|
>
>
>
|







532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
[#wikichng | wiki artifact].

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

<a name="remark"></a>
<h2>8.0 Remarks</h2>

A remark artifact holds textual remarks that are added to a check-in
or branch.
Remarks can hold expanded commentary about the check-in, a description
about the purpose of a branch, notes from
code-reviews, information about problems discovered in the check-in
or branch, or other auxiliary textual information about the check-ins
and branches.
The remark artifact is a new artifact added to this specification in
early 2017.
The following cards are allowed on a remark artifact:

<blockquote>
<b>D</b> <i>time-and-date-stamp</i><br />
<b>G</b> <i>checkin-or-branch</i><br />
<b>N</b> <i>mimetype</i><br />
<b>U</b> <i>user-name</i><br />
<b>W</b> <i>size</i> <b>\n</b> <i>text</i> <b>\n</b><br />
<b>Z</b> <i>checksum</i>
</blockquote>

A single D card is required to give the date and time when the
remark artifact was created.

A single G card specifies the object to which the remark is attached.
If the argment is a 40-character SHA1 hash, then it identifies a
check-in.  Otherwise, the argument is the name of a branch.  Since
branch names may whitespace, the argument to the G card is encoded
in the same way as a C-card.

The optional N card specifies the mimetype of the text of the remark
that is contained in the W card.  If the N card is omitted, then the
W card text mimetype is assumed to be text/x-fossil, which is the
Fossil wiki format.

A single W card provides wiki text for the document associated with the
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><b>G</b> <i>checkin-uuid</i></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>







|







667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><b>G</b> <i>checkin-or-branch</i></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>