Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Difference From 0.7 To 0.8
2022-01-09 15:42 | Bump version number: 0.9 (check-in: 1291047898 user: mark tags: trunk) | |
2022-01-09 15:32 | CHANGES for 0.8 (check-in: ab629f6e73 user: mark tags: trunk, 0.8) | |
2022-01-09 15:29 | Fix vertical split regression and DB locking issue. (check-in: 250d2884e8 user: mark tags: trunk) | |
2022-01-08 13:33 | Bump version number: 0.8 (check-in: 9918bb8dab user: mark tags: trunk) | |
2022-01-08 13:30 | CHANGES for 0.7 (check-in: 2c45034580 user: mark tags: trunk, 0.7) | |
2022-01-08 13:10 | Bump year in license headers (check-in: 277b68b64f user: mark tags: trunk) | |
Changes to CHANGES.md.
1 2 3 4 5 6 7 | **fnc 0.7** 2022-01-09 - factor out common make(1) and gmake build bits - make build depend on make file - make all commands compatible with `-R|--repository` (i.e., no checkout needed) - implement Vim-like smartcase for commands that filter repository results - improve timeline arg parsing for more informative output upon invalid input | > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 | **fnc 0.8** 2022-01-10 - fix vertical split - fix DB lock when opening horizontal split that signals the timeline thread **fnc 0.7** 2022-01-09 - factor out common make(1) and gmake build bits - make build depend on make file - make all commands compatible with `-R|--repository` (i.e., no checkout needed) - implement Vim-like smartcase for commands that filter repository results - improve timeline arg parsing for more informative output upon invalid input |
︙ | ︙ |
Changes to README.md.
1 2 | # README | | | | > > > > > > > > | | | 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # README # fnc 0.7 ## An interactive ncurses browser for [Fossil][0] repositories. `fnc` uses [libfossil][1] to create a [`fossil ui`][2] experience in the terminal. Tested and confirmed to run on the following amd64 systems (additional platforms noted inline): 1. OpenBSD 6.8-, 6.9-, and 7.0-release 2. macOS 10.15.7 (Catalina) and 11.5.2 (Big Sur) 3. Linux Mint 20.2 (32- and 64-bit ARM) 4. Ubuntu 18.04 running Linux kernel 5.11 (32-bit ARM) 5. Debian GNU/Linux 8, 9, and 10 6. 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. # Install * **OpenBSD** - `doas pkg_add fnc` * **macOS** - `sudo port install fnc` * **[Download](/uv/download.html)** and install the binary on your path # Build 1. clone the repository - `fossil clone https://fnc.bsdbox.org` 2. move into the repository checkout - `cd fnc` 3. build fnc - `make` 4. install the `fnc` binary (*requires privileges*) - `doas make install` 5. 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][3]. # Doc See `fnc --help` for a quick reference, and the [fnc(1)][4] 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. |
︙ | ︙ | |||
60 61 62 63 64 65 66 | [ticket][11]. 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][12]. | | | | | | | | | | < | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | [ticket][11]. 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][12]. 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)][13]. 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. # Screenshots          # Trivia **fnc** [fɪŋk] *noun* (n.) 1. an interactive ncurses browser for [Fossil][0] repositories *verb* (v.) 2. to inform etymology From the German word *Fink*, meaning "finch", a type of bird. [0]: https://fossil-scm.org [1]: https://fossil.wanderinghorse.net/r/libfossil [2]: https://fossil-scm.org/home/help?cmd=ui [3]: https://fnc.bsdbox.org/uv/download.html [4]: https://fnc.bsdbox.org/uv/resources/doc/fnc.1.html [5]: https://fnc.bsdbox.org/uv/resources/img/fnc-timeline-fullscreen.png [6]: https://itac.bsdbox.org/fnc-demo.mp4 [7]: https://gameoftrees.org/tog.1.html [8]: https://gameoftrees.org [9]: mailto:fnc@bsdbox.org [10]: https://fnc.bsdbox.org/forum [11]: https://fnc.bsdbox.org/ticket [12]: https://itac.bsdbox.org/listinfo/fnc [13]: https://man.openbsd.org/style.9 |
Changes to fnc.bld.mk.
1 2 3 4 5 6 7 8 | # # FNC Common Build # # CONFIGURATION CC ?= cc PREFIX ?= /usr/local MANDIR ?= /share/man | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # # FNC Common Build # # CONFIGURATION CC ?= cc PREFIX ?= /usr/local MANDIR ?= /share/man VERSION ?= 0.8 # FLAGS NEEDED TO BUILD SQLITE3 SQLITE_CFLAGS = ${CFLAGS} -Wall -Werror -Wno-sign-compare -pedantic -std=c99 \ -DNDEBUG=1 \ -DSQLITE_DQS=0 \ -DSQLITE_THREADSAFE=0 \ -DSQLITE_DEFAULT_MEMSTATUS=0 \ |
︙ | ︙ |
Deleted signify/fnc-06-release.pub.
|
| < < |
Added signify/fnc-08-release.pub.
> > | 1 2 | untrusted comment: fnc 0.8 public key RWRvIlnJtmD7IOR9LK/Ed1KrC+OsoACBv6wlQvDm0d117Lbvn48ez+2L |
Changes to src/fnc.c.
︙ | ︙ | |||
2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 | { struct fnc_tl_thread_cx *cx = &view->state.timeline.thread_cx; int rc = 0; while (cx->ncommits_needed > 0) { if (cx->eotl) break; /* Wake timeline thread. */ if ((rc = pthread_cond_signal(&cx->commit_consumer))) return RC(fsl_errno_to_rc(rc, FSL_RC_MISUSE), "%s", "pthread_cond_signal"); /* | > > > | 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 | { struct fnc_tl_thread_cx *cx = &view->state.timeline.thread_cx; int rc = 0; while (cx->ncommits_needed > 0) { if (cx->eotl) break; if (view->mode == VIEW_SPLIT_HRZN) cx->reset = true; /* Wake timeline thread. */ if ((rc = pthread_cond_signal(&cx->commit_consumer))) return RC(fsl_errno_to_rc(rc, FSL_RC_MISUSE), "%s", "pthread_cond_signal"); /* |
︙ | ︙ | |||
3620 3621 3622 3623 3624 3625 3626 3627 | * estate. If set to 'v' or 'h', assign start column or start line of the split * view to *start_col and *start_ln, respectively, and return split mode. */ static enum view_mode view_get_split(struct fnc_view *view, int *start_col, int *start_ln) { char *mode = fnc_conf_getopt(FNC_VIEW_SPLIT_MODE, false); | > | > | > | > | | > | 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 | * estate. If set to 'v' or 'h', assign start column or start line of the split * view to *start_col and *start_ln, respectively, and return split mode. */ static enum view_mode view_get_split(struct fnc_view *view, int *start_col, int *start_ln) { char *mode = fnc_conf_getopt(FNC_VIEW_SPLIT_MODE, false); enum view_mode vm; if (!mode || mode[0] != 'h') { vm = VIEW_SPLIT_VERT; *start_col = view_split_start_col(view->start_col); } if (!*start_col && (!mode || mode[0] != 'v')) { vm = VIEW_SPLIT_HRZN; *start_ln = view_split_start_ln(view->lines); } return vm; } /* Split view horizontally at *start_ln and offset view->state->selected line */ static int split_view(struct fnc_view *view, int *start_ln) { int rc = FSL_RC_OK; |
︙ | ︙ |