Artifact 40c6b2af3b8689326a4d61fc3d544210b55fd72b:
D 2013-08-13T09:36:56.227 L f-tools P 83db2eb97d83a4b10e1eaeb164cd55b122c521b0 U stephan W 3046 <h1>The f-tools</h1> The source tree contains a few test/demo apps which are named <tt>f-something</tt> (the "f" is for "fossil", of course). * <tt>[/finfo?name=f-tag.c|f-tag]</tt> can add tags to artifacts. * <tt>[/finfo?name=f-timeline.c|f-timeline]</tt> provides a simple timeline display. These applications provide demonstrations of using the library and give devs a place to test new features. <tt>[/finfo?name=FossilApp.c|FossilApp.c]</tt> provides a mini-framework which takes care of bootstrapping fossil for these applications, making it pretty simple to create new ones. FossilApp handles the CLI parsing, global flags, opening of a repo/checkout, and other "getting started" bits. Demos... <nowiki><pre> [stephan@host:~/cvs/fossil/f2]$ ./f-tag -a tip -t demo-tag -v "demo for prosperity purposes" --trace-sql SQL TRACE #1: SELECT '/home/stephan/cvs/fossil/f2' || '/' || value FROM vvar WHERE name='repository'; SQL TRACE #2: ATTACH DATABASE '/home/stephan/cvs/fossil/f2.fsl' AS repo; SQL TRACE #3: SELECT julianday('now'); SQL TRACE #4: SELECT objid FROM event WHERE type='ci' ORDER BY event.mtime DESC LIMIT 1; SQL TRACE #5: SELECT uuid FROM blob WHERE rid=1226; SQL TRACE #6: SELECT strftime('%Y-%m-%dT%H:%M:%f',2456517.117559); SQL TRACE #7: BEGIN TRANSACTION; SQL TRACE #8: SELECT rid, size FROM blob WHERE uuid='daa063582c2cd9d6029a5616f8a05eaa12c1b01b'; SQL TRACE #9: INSERT INTO blob(rcvid,size,uuid,content)<...SNIP...>; SQL TRACE #10: INSERT OR IGNORE INTO unclustered VALUES(1227); SQL TRACE #11: COMMIT; SQL TRACE #12: SELECT 1 FROM private WHERE rid=1226; SQL TRACE #13: BEGIN TRANSACTION; SQL TRACE #14: SELECT rid FROM blob WHERE uuid GLOB '2a84ad397a134ca3f278a44f4f969f962eb47a7b*'; SQL TRACE #15: SELECT tagid FROM tag WHERE tagname='demo-tag'; SQL TRACE #16: INSERT INTO tag(tagname) VALUES('demo-tag'); SQL TRACE #17: SELECT 1 FROM tagxref WHERE tagid=30 AND rid=1226 AND mtime>=2456517.11755911; SQL TRACE #18: REPLACE INTO tagxref(tagid,tagtype,srcId,origid,value,mtime,rid) VALUES(30,1,1227,1226,<...SNIP...>); SQL TRACE #19: SELECT <...SNIP...> WHERE pid=1226 AND isprim; SQL TRACE #20: REPLACE INTO event(type,mtime,objid,user,comment)VALUES(<...SNIP...>); SQL TRACE #21: COMMIT; SQL TRACE #22: DETACH DATABASE repo; [stephan@host:~/cvs/fossil/f2]$ ./f-timeline -n 1 g [daa063582c2c] @ 2013-08-12 16:49:17 by [stephan] Edit [2a84ad39]: Add "demo-tag" with value "demo for prosperity purposes". [stephan@host:~/cvs/fossil/f2]$ ./f-timeline -n 1 --trace-sql SQL TRACE #1: SELECT '/home/stephan/cvs/fossil/f2' || '/' || value FROM vvar WHERE name='repository'; SQL TRACE #2: ATTACH DATABASE '/home/stephan/cvs/fossil/f2.fsl' AS repo; SQL TRACE #3: SELECT substr(uuid,1,12) AS uuid, <...BIG SNIP...> ORDER BY event.mtime DESC LIMIT 1; g [daa063582c2c] @ 2013-08-12 16:49:17 by [stephan] Edit [2a84ad39]: Add "demo-tag" with value "demo for prosperity purposes". SQL TRACE #4: DETACH DATABASE repo; </pre></nowiki> Z 0d971f1efb904139adbd429a3ef832c6