Fossil SCM

Added a link to the pgp-signed note. Not happy with how it turns out, but it is proof-of-concept.

stephan 2013-08-20 14:07 UTC timeline-pgp-marker
Commit 884a765abdce9f475961c5887d4e33c78c542232
1 file changed +11 -3
+11 -3
--- src/manifest.c
+++ src/manifest.c
@@ -1676,10 +1676,11 @@
16761676
return 0;
16771677
}
16781678
db_begin_transaction();
16791679
if( p->type==CFTYPE_MANIFEST ){
16801680
if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){
1681
+ Blob bCom = empty_blob;
16811682
char *zCom;
16821683
for(i=0; i<p->nParent; i++){
16831684
int pid = uuid_to_rid(p->azParent[i], 1);
16841685
db_multi_exec("INSERT OR IGNORE INTO plink(pid, cid, isprim, mtime)"
16851686
"VALUES(%d, %d, %d, %.17g)", pid, rid, i==0, p->rDate);
@@ -1701,29 +1702,36 @@
17011702
for(i=0; i<p->nFile; i++){
17021703
add_one_mlink(rid, 0, p->aFile[i].zUuid, p->aFile[i].zName, 0,
17031704
isPublic, manifest_file_mperm(&p->aFile[i]));
17041705
}
17051706
}
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
+ }
17061714
db_multi_exec(
17071715
"REPLACE INTO event(type,mtime,objid,user,comment,"
17081716
"bgcolor,euser,ecomment,omtime)"
17091717
"VALUES('ci',"
17101718
" coalesce("
17111719
" (SELECT julianday(value) FROM tagxref WHERE tagid=%d AND rid=%d),"
17121720
" %.17g"
17131721
" ),"
1714
- " %d,%Q,%Q || %Q,"
1722
+ " %d,%Q,%B,"
17151723
" (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d AND tagtype>0),"
17161724
" (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d),"
17171725
" (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d),%.17g);",
17181726
TAG_DATE, rid, p->rDate,
1719
- rid, p->zUser, p->zComment,
1720
- p->fSigned ? " (*PGP SIGNED*)" : "",
1727
+ rid, p->zUser, &bCom,
17211728
TAG_BGCOLOR, rid,
17221729
TAG_USER, rid,
17231730
TAG_COMMENT, rid, p->rDate
17241731
);
1732
+ blob_reset(&bCom);
17251733
zCom = db_text(0, "SELECT coalesce(ecomment, comment) FROM event"
17261734
" WHERE rowid=last_insert_rowid()");
17271735
wiki_extract_links(zCom, rid, 0, p->rDate, 1, WIKI_INLINE);
17281736
free(zCom);
17291737
17301738
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button