{"id":13576925,"url":"https://github.com/mcjsk/fnc","last_synced_at":"2025-04-05T09:30:35.087Z","repository":{"id":209815790,"uuid":"455785103","full_name":"mcjsk/fnc","owner":"mcjsk","description":"An interactive ncurses browser for Fossil repositories [MIRROR ONLY]","archived":false,"fork":false,"pushed_at":"2022-02-05T06:03:46.000Z","size":32138,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-03-29T02:36:10.571Z","etag":null,"topics":["c","curses","fossil","fossil-scm","libfossil","ncurses","scm","tui","vcs"],"latest_commit_sha":null,"homepage":"https://fnc.bsdbox.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcjsk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-02-05T05:35:01.000Z","updated_at":"2024-12-21T00:03:26.000Z","dependencies_parsed_at":"2023-11-29T10:06:02.931Z","dependency_job_id":null,"html_url":"https://github.com/mcjsk/fnc","commit_stats":null,"previous_names":["mcjsk/fnc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcjsk%2Ffnc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcjsk%2Ffnc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcjsk%2Ffnc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcjsk%2Ffnc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcjsk","download_url":"https://codeload.github.com/mcjsk/fnc/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247317882,"owners_count":20919444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","curses","fossil","fossil-scm","libfossil","ncurses","scm","tui","vcs"],"created_at":"2024-08-01T15:01:15.914Z","updated_at":"2025-04-05T09:30:35.077Z","avatar_url":"https://github.com/mcjsk.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# README\n\n# fnc 0.8\n\n## An interactive ncurses browser for [Fossil][0] repositories.\n\n`fnc` uses [libfossil][1] to create a [`fossil ui`][2] experience in the\nterminal.\n\nTested and confirmed to run on the following amd64 systems (additional platforms\nnoted inline):\n\n1. OpenBSD 6.8-, 6.9-, and 7.0-release\n2. macOS 10.15.7 (Catalina) and 11.5.2 (Big Sur)\n3. Linux Mint 20.2 (32- and 64-bit ARM)\n4. Ubuntu 18.04 running Linux kernel 5.11 (32-bit ARM)\n5. Debian GNU/Linux 8, 9, and 10\n6. CentOS 6.5 (32-bit)\n\nAlpha development notwithstanding, the `timeline`, `diff`, `tree`, `blame`, and\n`branch` commands are relatively stable; however, there is no commitment to\nrefrain from breaking changes.\n\n# Install\n\n* **OpenBSD**\n  - `doas pkg_add fnc`\n* **macOS**\n  - `sudo port install fnc`\n* **[Download](/uv/download.html)** and install the binary on your path\n\n# Build\n\n1. clone the repository\n  - `fossil clone https://fnc.bsdbox.org`\n2. move into the repository checkout\n  - `cd fnc`\n3. build fnc\n  - `make`\n4. install the `fnc` binary (*requires privileges*)\n  - `doas make install`\n5. move into an open Fossil checkout, and run it:\n  - `cd ~/museum/repo \u0026\u0026 fossil open ../repo.fossil \u0026\u0026 fnc`\n\nThis will install the `fnc` executable and man page into `/usr/local/bin` and\n`/usr/local/share/man/man1`, respectively. Alternatively, cryptographically\nsigned tarballs of the source code and binaries for some of the abovementioned\nplatforms are available to [download][3].\n\n# Doc\n\nSee `fnc --help` for a quick reference, and the [fnc(1)][4] manual page for more\ncomprehensive documentation. In-app help can also be accessed with the `?`,\n`F1`, or `H` key binding. The following video briefly demonstrates some of the\nkey bindings in use.\n\n[![fnc demo][5]][6]\n\n# Why\n\n`fnc` is heavily inspired by [`tog`][7], which I missed when I left [Got][8]\n(Git) behind and started using Fossil. The objective is to provide an\nalternative to `fossil ui` without leaving the terminal.\n\n# Problems \u0026 Patches\n\nPlease submit bug reports via [email][9], the [forum][10], or by creating a new\n[ticket][11]. As a rule, all reports should include a bug reproduction recipe;\nthat is, either (1) the series of steps beginning with `fossil init` to create a\nnew repository through to the `fnc` command that triggers the unexpected\nbehaviour; or, if possible, (2) a shell script that contains all necessary\ningredients to reproduce the problem.\n\nPatches are thoughtfully considered and can be sent to the [mailing list][12].\nWhile `diff -up` patches are preferred, `fossil patch create` and `fossil diff`\npatches are also welcomed. Please ensure code conforms to the C99 standard,\nand complies with OpenBSD's KNF [style(9)][13]. Any patch containing\nuser-visible code addition, modification, or deletion (i.e., code that impacts\nuser interfaces) should concomitantly include updating documentation affected\nby the change.\n\n# Screenshots\n\n![diff vsplit](https://fnc.bsdbox.org/uv/resources/img/fnc-diff-vsplit.png \"diff vertical split\")\n![diff hsplit renamed](https://fnc.bsdbox.org/uv/resources/img/fnc-diff-hsplit-renamed.png \"diff horizontal split file renamed\")\n![diff vsplit added](https://fnc.bsdbox.org/uv/resources/img/fnc-diff-vsplit-added.png \"diff vertical split file added\")\n![diff vsplit removed](https://fnc.bsdbox.org/uv/resources/img/fnc-diff-vsplit-removed.png \"diff vertical split file removed\")\n![blame vsplit](https://fnc.bsdbox.org/uv/resources/img/fnc-blame-vsplit.png \"blame vertical split\")\n![tree vsplit](https://fnc.bsdbox.org/uv/resources/img/fnc-tree-vsplit.png \"tree vertical split\")\n![branch hsplit](https://fnc.bsdbox.org/uv/resources/img/fnc-branch-hsplit.png \"branch horizontal split\")\n![in-app help](https://fnc.bsdbox.org/uv/resources/img/fnc-inapp_help.png \"fnc in-app help\")\n![timeline help](https://fnc.bsdbox.org/uv/resources/img/fnc-timeline-help.png \"fnc timeline help\")\n\n# Trivia\n\n**fnc** [fɪŋk]  \n*noun* (n.)  \n1. an interactive ncurses browser for [Fossil][0] repositories  \n*verb* (v.)  \n2. to inform  \netymology  \nFrom the German word *Fink*, meaning \"finch\", a type of bird.\n\n[0]: https://fossil-scm.org\n[1]: https://fossil.wanderinghorse.net/r/libfossil\n[2]: https://fossil-scm.org/home/help?cmd=ui\n[3]: https://fnc.bsdbox.org/uv/download.html\n[4]: https://fnc.bsdbox.org/uv/resources/doc/fnc.1.html\n[5]: https://fnc.bsdbox.org/uv/resources/img/fnc-timeline-fullscreen.png\n[6]: https://itac.bsdbox.org/fnc-demo.mp4\n[7]: https://gameoftrees.org/tog.1.html\n[8]: https://gameoftrees.org\n[9]: mailto:fnc@bsdbox.org\n[10]: https://fnc.bsdbox.org/forum\n[11]: https://fnc.bsdbox.org/ticket\n[12]: https://itac.bsdbox.org/listinfo/fnc\n[13]: https://man.openbsd.org/style.9\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcjsk%2Ffnc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcjsk%2Ffnc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcjsk%2Ffnc/lists"}