An interactive ncurses browser for Fossil repositories.
fnc
uses libfossil to create a fossil ui
experience in the
terminal.
Tested and confirmed to run on the following amd64 systems (additional platforms noted inline):
- OpenBSD 6.8-, 6.9-, and 7.0-release
- macOS 10.15.7 (Catalina) and 11.5.2 (Big Sur)
- Linux Mint 20.2 (32- and 64-bit ARM)
- Ubuntu 18.04 running Linux kernel 5.11 (32-bit ARM)
- Debian GNU/Linux 8, 9, and 10
- CentOS 6.5 (32-bit)
Alpha development notwithstanding, the timeline
, diff
, tree
, blame
, and
branch
commands are relatively stable; however, there is no commitment to
refrain from breaking changes.
- OpenBSD
doas pkg_add fnc
- macOS
sudo port install fnc
- Download and install the binary on your path
- clone the repository
fossil clone https://fnc.bsdbox.org
- move into the repository checkout
cd fnc
- build fnc
make
- install the
fnc
binary (requires privileges)
doas make install
- move into an open Fossil checkout, and run it:
cd ~/museum/repo && fossil open ../repo.fossil && fnc
This will install the fnc
executable and man page into /usr/local/bin
and
/usr/local/share/man/man1
, respectively. Alternatively, cryptographically
signed tarballs of the source code and binaries for some of the abovementioned
platforms are available to download.
See fnc --help
for a quick reference, and the fnc(1) manual page for more
comprehensive documentation. In-app help can also be accessed with the ?
,
F1
, or H
key binding. The following video briefly demonstrates some of the
key bindings in use.
fnc
is heavily inspired by tog
, which I missed when I left Got
(Git) behind and started using Fossil. The objective is to provide an
alternative to fossil ui
without leaving the terminal.
Please submit bug reports via email, the forum, or by creating a new
ticket. As a rule, all reports should include a bug reproduction recipe;
that is, either (1) the series of steps beginning with fossil init
to create a
new repository through to the fnc
command that triggers the unexpected
behaviour; or, if possible, (2) a shell script that contains all necessary
ingredients to reproduce the problem.
Patches are thoughtfully considered and can be sent to the mailing list.
While diff -up
patches are preferred, fossil patch create
and fossil diff
patches are also welcomed. Please ensure code conforms to the C99 standard,
and complies with OpenBSD's KNF style(9). Any patch containing
user-visible code addition, modification, or deletion (i.e., code that impacts
user interfaces) should concomitantly include updating documentation affected
by the change.
fnc [fɪŋk]
noun (n.)
- an interactive ncurses browser for Fossil repositories
verb (v.) - to inform
etymology
From the German word Fink, meaning "finch", a type of bird.