Fossil SCM
Added a link to the pgp-signed note. Not happy with how it turns out, but it is proof-of-concept.
Commit
884a765abdce9f475961c5887d4e33c78c542232
Parent
d632a50e2a06c76…
1 file changed
+11
-3
+11
-3
| --- src/manifest.c | ||
| +++ src/manifest.c | ||
| @@ -1676,10 +1676,11 @@ | ||
| 1676 | 1676 | return 0; |
| 1677 | 1677 | } |
| 1678 | 1678 | db_begin_transaction(); |
| 1679 | 1679 | if( p->type==CFTYPE_MANIFEST ){ |
| 1680 | 1680 | if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){ |
| 1681 | + Blob bCom = empty_blob; | |
| 1681 | 1682 | char *zCom; |
| 1682 | 1683 | for(i=0; i<p->nParent; i++){ |
| 1683 | 1684 | int pid = uuid_to_rid(p->azParent[i], 1); |
| 1684 | 1685 | db_multi_exec("INSERT OR IGNORE INTO plink(pid, cid, isprim, mtime)" |
| 1685 | 1686 | "VALUES(%d, %d, %d, %.17g)", pid, rid, i==0, p->rDate); |
| @@ -1701,29 +1702,36 @@ | ||
| 1701 | 1702 | for(i=0; i<p->nFile; i++){ |
| 1702 | 1703 | add_one_mlink(rid, 0, p->aFile[i].zUuid, p->aFile[i].zName, 0, |
| 1703 | 1704 | isPublic, manifest_file_mperm(&p->aFile[i])); |
| 1704 | 1705 | } |
| 1705 | 1706 | } |
| 1707 | + blob_append(&bCom, p->zComment, -1); | |
| 1708 | + if( p->fSigned ){ | |
| 1709 | + char * zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); | |
| 1710 | + blob_appendf( &bCom, " ([%R/artifact/%.12s | PGP SIGNED])", | |
| 1711 | + zUuid); | |
| 1712 | + fossil_free(zUuid); | |
| 1713 | + } | |
| 1706 | 1714 | db_multi_exec( |
| 1707 | 1715 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 1708 | 1716 | "bgcolor,euser,ecomment,omtime)" |
| 1709 | 1717 | "VALUES('ci'," |
| 1710 | 1718 | " coalesce(" |
| 1711 | 1719 | " (SELECT julianday(value) FROM tagxref WHERE tagid=%d AND rid=%d)," |
| 1712 | 1720 | " %.17g" |
| 1713 | 1721 | " )," |
| 1714 | - " %d,%Q,%Q || %Q," | |
| 1722 | + " %d,%Q,%B," | |
| 1715 | 1723 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d AND tagtype>0)," |
| 1716 | 1724 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d)," |
| 1717 | 1725 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d),%.17g);", |
| 1718 | 1726 | TAG_DATE, rid, p->rDate, |
| 1719 | - rid, p->zUser, p->zComment, | |
| 1720 | - p->fSigned ? " (*PGP SIGNED*)" : "", | |
| 1727 | + rid, p->zUser, &bCom, | |
| 1721 | 1728 | TAG_BGCOLOR, rid, |
| 1722 | 1729 | TAG_USER, rid, |
| 1723 | 1730 | TAG_COMMENT, rid, p->rDate |
| 1724 | 1731 | ); |
| 1732 | + blob_reset(&bCom); | |
| 1725 | 1733 | zCom = db_text(0, "SELECT coalesce(ecomment, comment) FROM event" |
| 1726 | 1734 | " WHERE rowid=last_insert_rowid()"); |
| 1727 | 1735 | wiki_extract_links(zCom, rid, 0, p->rDate, 1, WIKI_INLINE); |
| 1728 | 1736 | free(zCom); |
| 1729 | 1737 | |
| 1730 | 1738 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1676,10 +1676,11 @@ | |
| 1676 | return 0; |
| 1677 | } |
| 1678 | db_begin_transaction(); |
| 1679 | if( p->type==CFTYPE_MANIFEST ){ |
| 1680 | if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){ |
| 1681 | char *zCom; |
| 1682 | for(i=0; i<p->nParent; i++){ |
| 1683 | int pid = uuid_to_rid(p->azParent[i], 1); |
| 1684 | db_multi_exec("INSERT OR IGNORE INTO plink(pid, cid, isprim, mtime)" |
| 1685 | "VALUES(%d, %d, %d, %.17g)", pid, rid, i==0, p->rDate); |
| @@ -1701,29 +1702,36 @@ | |
| 1701 | for(i=0; i<p->nFile; i++){ |
| 1702 | add_one_mlink(rid, 0, p->aFile[i].zUuid, p->aFile[i].zName, 0, |
| 1703 | isPublic, manifest_file_mperm(&p->aFile[i])); |
| 1704 | } |
| 1705 | } |
| 1706 | db_multi_exec( |
| 1707 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 1708 | "bgcolor,euser,ecomment,omtime)" |
| 1709 | "VALUES('ci'," |
| 1710 | " coalesce(" |
| 1711 | " (SELECT julianday(value) FROM tagxref WHERE tagid=%d AND rid=%d)," |
| 1712 | " %.17g" |
| 1713 | " )," |
| 1714 | " %d,%Q,%Q || %Q," |
| 1715 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d AND tagtype>0)," |
| 1716 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d)," |
| 1717 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d),%.17g);", |
| 1718 | TAG_DATE, rid, p->rDate, |
| 1719 | rid, p->zUser, p->zComment, |
| 1720 | p->fSigned ? " (*PGP SIGNED*)" : "", |
| 1721 | TAG_BGCOLOR, rid, |
| 1722 | TAG_USER, rid, |
| 1723 | TAG_COMMENT, rid, p->rDate |
| 1724 | ); |
| 1725 | zCom = db_text(0, "SELECT coalesce(ecomment, comment) FROM event" |
| 1726 | " WHERE rowid=last_insert_rowid()"); |
| 1727 | wiki_extract_links(zCom, rid, 0, p->rDate, 1, WIKI_INLINE); |
| 1728 | free(zCom); |
| 1729 | |
| 1730 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1676,10 +1676,11 @@ | |
| 1676 | return 0; |
| 1677 | } |
| 1678 | db_begin_transaction(); |
| 1679 | if( p->type==CFTYPE_MANIFEST ){ |
| 1680 | if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){ |
| 1681 | Blob bCom = empty_blob; |
| 1682 | char *zCom; |
| 1683 | for(i=0; i<p->nParent; i++){ |
| 1684 | int pid = uuid_to_rid(p->azParent[i], 1); |
| 1685 | db_multi_exec("INSERT OR IGNORE INTO plink(pid, cid, isprim, mtime)" |
| 1686 | "VALUES(%d, %d, %d, %.17g)", pid, rid, i==0, p->rDate); |
| @@ -1701,29 +1702,36 @@ | |
| 1702 | for(i=0; i<p->nFile; i++){ |
| 1703 | add_one_mlink(rid, 0, p->aFile[i].zUuid, p->aFile[i].zName, 0, |
| 1704 | isPublic, manifest_file_mperm(&p->aFile[i])); |
| 1705 | } |
| 1706 | } |
| 1707 | blob_append(&bCom, p->zComment, -1); |
| 1708 | if( p->fSigned ){ |
| 1709 | char * zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 1710 | blob_appendf( &bCom, " ([%R/artifact/%.12s | PGP SIGNED])", |
| 1711 | zUuid); |
| 1712 | fossil_free(zUuid); |
| 1713 | } |
| 1714 | db_multi_exec( |
| 1715 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 1716 | "bgcolor,euser,ecomment,omtime)" |
| 1717 | "VALUES('ci'," |
| 1718 | " coalesce(" |
| 1719 | " (SELECT julianday(value) FROM tagxref WHERE tagid=%d AND rid=%d)," |
| 1720 | " %.17g" |
| 1721 | " )," |
| 1722 | " %d,%Q,%B," |
| 1723 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d AND tagtype>0)," |
| 1724 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d)," |
| 1725 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d),%.17g);", |
| 1726 | TAG_DATE, rid, p->rDate, |
| 1727 | rid, p->zUser, &bCom, |
| 1728 | TAG_BGCOLOR, rid, |
| 1729 | TAG_USER, rid, |
| 1730 | TAG_COMMENT, rid, p->rDate |
| 1731 | ); |
| 1732 | blob_reset(&bCom); |
| 1733 | zCom = db_text(0, "SELECT coalesce(ecomment, comment) FROM event" |
| 1734 | " WHERE rowid=last_insert_rowid()"); |
| 1735 | wiki_extract_links(zCom, rid, 0, p->rDate, 1, WIKI_INLINE); |
| 1736 | free(zCom); |
| 1737 | |
| 1738 |