Login
Changes To f-tools
Login

Changes to "f-tools" between 2014-02-09 14:29:07 and 2014-02-11 14:32:57

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20














21
22
23
24
25
26
27
1
2
3
4
5
6














7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27






-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+







<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). Collectively, these apps demonstrate the functionality which is currently ported in from fossil(1) (or is new) and working. If a fossil(1) feature is not represented here, it's probably not yet ported.

In alphabetical order:

   *  <tt>[/finfo?name=f-acat.c|f-acat]</tt> ("artifact cat") can output arbitrary artifacts from a repository.
   *  <tt>[/finfo?name=f-add.c|f-add]</tt> queues file for addition in the next commit.
   *  <tt>[/finfo?name=f-config.c|f-config]</tt> lists and modifies the contents of the various configuration tables (global, repo, and local checkout).
   *  <tt>[/finfo?name=f-ls.c|f-ls]</tt> lists files from a repository.
   *  <tt>[/finfo?name=f-mfparse.c|f-mfparse]</tt> reads in Fossil control artifacts, converts them to its internal high-level form, and saves them back out to a file. This is used for testing both the manifest parsing and generation code, to test round-trip fidelity and compatibility with fossil(1) manifests.
   *  <tt>[/finfo?name=f-new.c|f-new]</tt> creates new/empty repository databases.
   *  <tt>[/finfo?name=f-query.c|f-query]</tt> runs SQL commands against a repo/checkout db. SQL run this way has access to the [DbFunctions|fossil-specific SQL functions]. Be careful!
   *  <tt>[/finfo?name=f-resolve.c|f-resolve]</tt> resolves symbolic checkin names (like "trunk", "current", and "prev") and partial UUIDs to their full UUIDs and RIDs.
   *  <tt>[/finfo?name=f-rm.c|f-rm]</tt> queues files for removal at the next commit or cancels uncommitted "add" commands.
   *  <tt>[/finfo?name=f-sanity.c|f-sanity]</tt> runs a number of sanity checks on the library. Library developers should run/amend this occasionally.
   *  <tt>[/finfo?name=f-status.c|f-status]</tt> behaves mostly like fossil's <tt>status</tt> command.
   *  <tt>[/finfo?name=f-tag.c|f-tag]</tt> adds tags to artifacts.
   *  <tt>[/finfo?name=f-timeline.c|f-timeline]</tt> provides a timeline of recent repository activity. 
   *  <tt>[/finfo?name=f-wiki.c|f-wiki]</tt> is a generic wiki manipulation tool, capable of listing, exporting, and importing wiki pages.
   *  <tt>[/finfo?name=f-apps/f-acat.c|f-acat]</tt> ("artifact cat") can output arbitrary artifacts from a repository.
   *  <tt>[/finfo?name=f-apps/f-add.c|f-add]</tt> queues file for addition in the next commit.
   *  <tt>[/finfo?name=f-apps/f-config.c|f-config]</tt> lists and modifies the contents of the various configuration tables (global, repo, and local checkout).
   *  <tt>[/finfo?name=f-apps/f-ls.c|f-ls]</tt> lists files from a repository.
   *  <tt>[/finfo?name=f-apps/f-mfparse.c|f-mfparse]</tt> reads in Fossil control artifacts, converts them to its internal high-level form, and saves them back out to a file. This is used for testing both the manifest parsing and generation code, to test round-trip fidelity and compatibility with fossil(1) manifests.
   *  <tt>[/finfo?name=f-apps/f-new.c|f-new]</tt> creates new/empty repository databases.
   *  <tt>[/finfo?name=f-apps/f-query.c|f-query]</tt> runs SQL commands against a repo/checkout db. SQL run this way has access to the [DbFunctions|fossil-specific SQL functions]. Be careful!
   *  <tt>[/finfo?name=f-apps/f-resolve.c|f-resolve]</tt> resolves symbolic checkin names (like "trunk", "current", and "prev") and partial UUIDs to their full UUIDs and RIDs.
   *  <tt>[/finfo?name=f-apps/f-rm.c|f-rm]</tt> queues files for removal at the next commit or cancels uncommitted "add" commands.
   *  <tt>[/finfo?name=f-apps/f-sanity.c|f-sanity]</tt> runs a number of sanity checks on the library. Library developers should run/amend this occasionally.
   *  <tt>[/finfo?name=f-apps/f-status.c|f-status]</tt> behaves mostly like fossil's <tt>status</tt> command.
   *  <tt>[/finfo?name=f-apps/f-tag.c|f-tag]</tt> adds tags to artifacts.
   *  <tt>[/finfo?name=f-apps/f-timeline.c|f-timeline]</tt> provides a timeline of recent repository activity. 
   *  <tt>[/finfo?name=f-apps/f-wiki.c|f-wiki]</tt> is a generic wiki manipulation tool, capable of listing, exporting, and importing wiki pages.

All of these applications accept <tt>-?</tt>, <tt>--help</tt>, or a first non-flag argument of <tt>help</tt> to show their help text.

These applications provide demonstrations of using the library and give devs a place to test new features. <tt>[FossilApp|fcli]</tt> provides a mini-framework which takes care of bootstrapping fossil for these applications, making it pretty simple to create new ones. fcli handles the CLI parsing, global flags, opening of a repo/checkout, and other "getting started" bits. If you've ever hacked on fossil(1), adding a new f-* app is very similar to adding a new command to fossil, with only a few more lines of bootstrap code (because each "command" is in its own app).

<h2>Demos</h2>