<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).

   *  can add tags to artifacts.
   *  provides a simple timeline display.

These applications provide demonstrations of using the library and give devs a place to test new features. 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>
./f-tag -a tip -t demo-tag -v "demo for prosperity purposes" --trace-sql
SQL TRACE #1: SELECT || '/' || value FROM vvar WHERE name='repository';
SQL TRACE #2: ATTACH DATABASE 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
SQL TRACE #9: INSERT INTO blob(rcvid,size,uuid,content)&lt;...SNIP...&gt;;
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
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,&lt;...SNIP...&gt;);
SQL TRACE #19: SELECT &lt;...SNIP...&gt; WHERE pid=1226 AND isprim;
SQL TRACE #20: REPLACE INTO event(type,mtime,objid,user,comment)VALUES(&lt;...SNIP...&gt;);
SQL TRACE #21: COMMIT;
SQL TRACE #22: DETACH DATABASE repo;

./f-timeline -n 1
g  [daa063582c2c] @ 2013-08-12 16:49:17 by
	Edit [2a84ad39]: Add "demo-tag" with value "demo for prosperity purposes".

./f-timeline -n 1 --trace-sql
SQL TRACE #1: SELECT || '/' || value FROM vvar WHERE name='repository';
SQL TRACE #2: ATTACH DATABASE AS repo;
SQL TRACE #3: SELECT substr(uuid,1,12) AS uuid, &lt;...BIG SNIP...&gt; ORDER BY event.mtime DESC LIMIT 1;
g  [daa063582c2c] @ 2013-08-12 16:49:17 by
	Edit [2a84ad39]: Add "demo-tag" with value "demo for prosperity purposes".
SQL TRACE #4: DETACH DATABASE repo;