1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
-
+
-
-
+
+
|
<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.
* <tt>[/finfo?name=f-acat.c|f-acat]</tt> ("artifact cat") can output arbitrary artifacts from a repository.
* <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. Be careful!
* <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-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> can add tags to artifacts.
* <tt>[/finfo?name=f-timeline.c|f-timeline]</tt> provides a simple timeline
* <tt>[/finfo?name=f-wiki.c|f-wiki]</tt> hopes to one day be a generic wiki manipulation tool.
* <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.
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>
|
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
+
+
|
C initial\sempty\scheck-in
D 2013-07-23T13:56:36.037
P
R d41d8cd98f00b204e9800998ecf8427e
T *branch * trunk
...
</nowiki></pre>
An <tt>-e</tt> value may either SQL code or the name of a file containing SQL. Unlike most arguments, <tt>-e</tt> may be specified multiple times.
<h2>f-wiki</h2>
<tt>f-wiki</tt> can list wiki pages and export/import wiki page content.
|