Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Initial changes for adding attachments to check-ins. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | checkin-attachment |
| Files: | files | file ages | folders |
| SHA3-256: |
cb385ba00906fb9d066adf22d962ded9 |
| User & Date: | drh 2017-10-19 20:39:31.741 |
Context
|
2017-10-19
| ||
| 20:39 | Initial changes for adding attachments to check-ins. Closed-Leaf check-in: cb385ba009 user: drh tags: checkin-attachment | |
| 08:47 | typo fix reported on the ML. check-in: 1374d58142 user: stephan tags: trunk | |
Changes
Changes to src/manifest.c.
| ︙ | ︙ | |||
758 759 760 761 762 763 764 765 766 767 |
zUuid = next_token(&x, &sz);
if( zUuid==0 ) SYNTAX("missing artifact hash on T-card");
zValue = next_token(&x, 0);
if( zValue ) defossilize(zValue);
if( hname_validate(zUuid, sz) ){
/* A valid artifact hash */
if( p->zEventId ) SYNTAX("non-self-referential T-card in event");
}else if( sz==1 && zUuid[0]=='*' ){
zUuid = 0;
hasSelfRefTag = 1;
| > > > | | > | 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 |
zUuid = next_token(&x, &sz);
if( zUuid==0 ) SYNTAX("missing artifact hash on T-card");
zValue = next_token(&x, 0);
if( zValue ) defossilize(zValue);
if( hname_validate(zUuid, sz) ){
/* A valid artifact hash */
if( p->zEventId ) SYNTAX("non-self-referential T-card in event");
if( p->zAttachTarget ){
SYNTAX("non-self-referential T-card in attachment");
}
}else if( sz==1 && zUuid[0]=='*' ){
zUuid = 0;
hasSelfRefTag = 1;
if( zName[0]!='+' ){
if( p->zEventId ) SYNTAX("propagating T-card in event");
if( p->zAttachTarget ) SYNTAX("propagating T-card in attachment");
}
}else{
SYNTAX("malformed artifact hash on T-card");
}
defossilize(zName);
if( zName[0]!='-' && zName[0]!='+' && zName[0]!='*' ){
SYNTAX("T-card name does not begin with '-', '+', or '*'");
|
| ︙ | ︙ | |||
932 933 934 935 936 937 938 |
if( p->zMimetype) SYNTAX("N-card in ticket");
if( p->nTag>0 ) SYNTAX("T-card in ticket");
if( p->zUser==0 ) SYNTAX("missing U-card on ticket");
if( !seenZ ) SYNTAX("missing Z-card on ticket");
p->type = CFTYPE_TICKET;
}else if( p->zAttachName ){
if( p->rDate<=0.0 ) SYNTAX("missing date on attachment");
| < | 936 937 938 939 940 941 942 943 944 945 946 947 948 949 |
if( p->zMimetype) SYNTAX("N-card in ticket");
if( p->nTag>0 ) SYNTAX("T-card in ticket");
if( p->zUser==0 ) SYNTAX("missing U-card on ticket");
if( !seenZ ) SYNTAX("missing Z-card on ticket");
p->type = CFTYPE_TICKET;
}else if( p->zAttachName ){
if( p->rDate<=0.0 ) SYNTAX("missing date on attachment");
if( !seenZ ) SYNTAX("missing Z-card on attachment");
p->type = CFTYPE_ATTACHMENT;
}else{
if( p->rDate<=0.0 ) SYNTAX("missing date on control");
if( p->zMimetype ) SYNTAX("N-card in control");
if( !seenZ ) SYNTAX("missing Z-card on control");
p->type = CFTYPE_CONTROL;
|
| ︙ | ︙ |
Changes to www/fileformat.wiki.
| ︙ | ︙ | |||
427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 | The following cards are allowed on an attachment artifact: <blockquote> <b>A</b> <i>filename target</i> ?<i>source</i>?<br /> <b>C</b> <i>comment</i><br /> <b>D</b> <i>time-and-date-stamp</i><br /> <b>N</b> <i>mimetype</i><br /> <b>U</b> <i>user-name</i><br /> <b>Z</b> <i>checksum</i> </blockquote> The A card specifies a filename for the attachment in its first argument. The second argument to the A card is the name of the wiki page or ticket or technical note to which the attachment is connected. The third argument is either missing or else it is the 40-character artifact ID of the attachment itself. A missing third argument means that the attachment should be deleted. The C card is an optional comment describing what the attachment is about. The C card is optional, but there can only be one. A single D card is required to give the date and time when the attachment was applied. There may be zero or one N cards. The N card specifies the mimetype of the comment text provided in the C card. If the N card is omitted, the C card mimetype is taken to be text/plain. A single U card gives the name of the user who 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. | > > > > > > > > > > > > > > > > > | 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 | The following cards are allowed on an attachment artifact: <blockquote> <b>A</b> <i>filename target</i> ?<i>source</i>?<br /> <b>C</b> <i>comment</i><br /> <b>D</b> <i>time-and-date-stamp</i><br /> <b>N</b> <i>mimetype</i><br /> <b>T</b> <b>+</b><i>tag-name</i> <b>*</b> ?<i>value</i>?<br /> <b>U</b> <i>user-name</i><br /> <b>Z</b> <i>checksum</i> </blockquote> The A card specifies a filename for the attachment in its first argument. The second argument to the A card is the name of the wiki page or ticket or technical note to which the attachment is connected. The third argument is either missing or else it is the 40-character artifact ID of the attachment itself. A missing third argument means that the attachment should be deleted. The C card is an optional comment describing what the attachment is about. The C card is optional, but there can only be one. A single D card is required to give the date and time when the attachment was applied. There may be zero or one N cards. The N card specifies the mimetype of the comment text provided in the C card. If the N card is omitted, the C card mimetype is taken to be text/plain. An attachment might contain one or more T-cards used to set [./branching.wiki#tags | tags or properties] on the attachment. The format of the T-card is the same as described in [#ctrl | Control Artifacts] section above, except that the second argument is the single character "<b>*</b>" instead of an artifact ID and the name is always prefaced by "<b>+</b>". The <b>*</b> in place of the artifact ID indicates that the tag or property applies to the current artifact. It is not possible to encode the current artifact ID as part of an artifact, since the act of inserting the artifact ID would change the artifact ID, hence a <b>*</b> is used to represent "self". The "<b>+</b>" on the name means that tags can only be add and they can only be non-propagating tags. In an attachment, T cards are normally used to identify test case results on check-ins. A single U card gives the name of the user who 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. |
| ︙ | ︙ |