This is a long overdue announcement for a project I have been developing for a while.
fnc
is an opinionated text-based user interface (TUI) for
Fossil. It is heavily inspired by tog, which I missed
after moving from git repositories for personal source control (via
got–a saner and much simpler Git-compatible VCS) to Fossil. If
familiar with tog
, or even tig
(Git's TUI browser), fnc
is the Fossil
counterpart.
The goal is to provide a terminal alternative to fossil ui
.
Complete coverage is not the objective–only the essential version control
ingredients–all the forum, wiki, and ticket bells and whistles are not in
scope. There was early consideration for a builtin Fossil chat interface, but
that should instead be a standalone program. Although still in alpha
development, fnc
is more than suitable for daily use, and most existing
commands are likely stable. In addition, fnc
provides a couple features
considered essential by the author that are not available in Fossil (e.g.,
interactive stash and scope data in diff hunk headers).
fnc
uses ncurses and libfossil
–an "unofficial"
third party Fossil project–and is developed in close concert with the latter.
The libfossil
author, Stephan Beal, is one of Fossil's core developers, and
the library has been developed with the endorsement of Fossil's author–D.
Richard Hipp. It is very well documented, and makes developing third party
Fossil applications a breeze. Stephan is an excellent developer, but also
approachable and receptive to suggestions or feedback. Although libfossil
is
also still in alpha, the library has reached feature parity with Fossil's core
version control features. Notable omissions involve the ticket and wiki
subsystems, as well as support for stash and unversioned content. Nonetheless,
as fnc
demonstrates, libfossil
more than facilitates development of useful
Fossil applications. I highly recommend getting in touch with Stephan if you
have any ideas or plans to develop Fossil-related projects.
The target platform is OpenBSD, where fnc
is both pledge(2)
d
and unveil(2)
ed, and can be installed with pkg_add fnc
. macOS
is also supported, where fnc
is available via MacPorts with
port install fnc
. In addition, Linux packages with Landlock support are
available; see the project site for the various package managers.
If interested, please visit the canonical site or read the documentation for further information!