Fossil

Check-in [b78d1a67]
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 | SQL 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
Context
2017-01-10
19:09
Merge changes from trunk. check-in: 43fa1ecc 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: b78d1a67 user: drh tags: remarks-on-checkins
2017-01-08
21:04
A couple more typo fixes in the file format document. check-in: 290404ec user: mistachkin tags: remarks-on-checkins
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/manifest.c.

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
...
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
...
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
...
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
  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[] */
................................................................................
      /*
      **     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
................................................................................

  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->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");







|







 







|
|
|
<
<







 







|







 







|







76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
...
579
580
581
582
583
584
585
586
587
588


589
590
591
592
593
594
595
...
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
...
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
  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[] */
................................................................................
      /*
      **     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
................................................................................

  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->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
...
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
[#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
................................................................................
<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>







|
>
|
>
|
|
>






|









|
|
>
>
>







 







|







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
...
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
[#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
................................................................................
<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>