Skip to content

Latest commit

 

History

History
177 lines (161 loc) · 9.6 KB

CHANGES.md

File metadata and controls

177 lines (161 loc) · 9.6 KB

fnc 0.8 2022-01-10

  • fix vertical split view init regression from 0.7 when terminal < 120 cols wide
  • 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
  • plug small memory leak when the timeline command fails to initialise a view
  • fix database locking issue when opening multiple tree views from the timeline
  • add pledge(2) and unveil(2) support on OpenBSD builds
  • add (s)ort keymap (i.e., --sort CLI option counterpart) to the branch view
  • add (d)ate keymap to toggle display of last modified timestamp in tree view
  • allow blame of empty files rather than erroring out
  • fix NULL dereference UB when the ".." parent dir is selected in tree view
  • merge upstream fix when annotating files with shallow history
  • add support for configurable horizontal split view mode (timeline -> diff)
  • keep the last/first line in view when paging down/up to stay oriented
  • expand horizontal splitscreen support to include tree -> blame views
  • improve handling of cached commit builder statements
  • plug small memleak of file labels when traversing commits from the diff view
  • display message rather than error out when binary files are blamed
  • expand horizontal split coverage to include timeline -> tree views
  • implement '#' keymap to display line numbers in blame view
  • implement (L)ine keymap to navigate directly to the entered line in blame view
  • convert diff code to use upstream v2 API
  • keep lines on screen in view when using keymaps that modify diff content
  • reset diff search state when traversing commits from the diff view
  • apply upstream diff fix to render consecutive edited lines as one block
  • implement '#' keymap to display line numbers in diff view
  • improve C-f/C-b paging in the in-app help window
  • add user-defined option to configure search highlight colours
  • implement navigate to (L)ine keymap in diff view
  • enhance timeline and diff view headers
  • implement user-defined option to configure line selection cursor in diff view
  • implement Vim-like C-e/C-y keymaps to scroll down/up one line in diff view
  • implement horizontal scrolling in diff and blame views
  • improve view request handling and optimise new view initialisation
  • implement C-n/C-p keymap to navigate to the next/previous file in the diff
  • implement (F)ile keymap to navigate directly to a file in the diff
  • apply upstream diff v2 fix for rendering untouched lines as changed
  • implement Vim-like C-d/C-u keymaps to scroll the view down/up half a page
  • enhance search behaviour in all views

fnc 0.6 2021-11-22

  • implement support for user-defined colours in tl, diff, tree and blame views
  • make branch view accessible from all other views
  • optimise colour scheme initialisation
  • implement new 'fnc config' interface to configure per-project settings
  • improve build by making make file make(1) compatible
  • rename old make file to GNUmakefile to keep gmake support
  • more robust error handling of invalid user input to new config command
  • fix tree symlink colour regular expression so symlink entries are colourised
  • improve colourised header highlighting when in splitscreen mode
  • fix display of colourised headers in tmux
  • more robust handling of cached statements when switching views
  • fix branch-to-tree-to-timeline segv bug when file is missing
  • improve const correctness of fcli struct declarations
  • enhance diff command with support for arbitrary repository blob artifacts
  • quiet error reporting in non-debug builds
  • fix commit builder bug that may omit timeline commits when switching views
  • improved branch view resource deallocation
  • implement new timeline command --filter option and key binding
  • enhance timeline --type option with support for tag control artifacts
  • general documentation improvements
  • assorted updates from upstream libfossil including compiler warning fix
  • expand support for user-defined colours to include the branch view

fnc 0.5 2021-11-03

  • simplify the build system to make-only and remove autosetup (patch from sdk)
  • remove invalid fsl_errno_to_rc() call and redundant alloc error check
  • reduce noise on app exit by removing redundant error output
  • relocate fnc_strlcpy() and fnc_strlcat() routines to the library

fnc 0.4 2021-10-31

  • resolve database bug in the commit builder logic
  • prune dead code leftover from the initial single-threaded blame implementation
  • improve error handling of commands that return no records
  • update in-app help with blame key bindings
  • expand tree command's ability to display trees of versions with missing files
  • improve tree command error handling of non-checkin artifacts
  • make tree command compatible with the -R <repository> option
  • add profiling (--profile) option to the build system
  • notify user of invalid blame P key binding selections with ephemeral message
  • add coloured output and associated key binding/options to the timeline view
  • ensure the full diff is displayed for non-standard initial check-ins
  • initialise variables to squelch gcc-9.3 compiler warnings
  • add command line aliases to all currently available commands
  • add time-based annotation option to the blame command
  • fix colour conflicts between certain views
  • enhance diff interface with optional path arg to filter diffs between commits
  • improve diff view by displaying full context when diffing consecutive commits
  • make diff index parsing more robust when handling removed/missing files
  • ensure diff honours the repository's allow-symlinks setting
  • simplify help output when -h|--help is passed to command aliases
  • invert diff metadata when -i|--invert or the i key binding is used
  • fix diff bug when the first commit is opened from the timeline view
  • enhance diff command to enable diff of arbitrary file blobs
  • optimise parsing of artifacts to determine which diff routine to call
  • implement fnc branch which displays a navigable list of repository branches
  • expand available sort options to the branch command
  • simplify usage output on error or -h|--help with usage callback
  • general man page and documentation improvements
  • fix incorrect configure --prefix install path in the docs (reported by sdk)

fnc 0.3 2021-10-17

  • add in-app help with H|?|F1 key binding
  • improvements to the build system
  • decompose build_commits() to make reusable commit_builder() method
  • dynamically size header so metadata is not truncated in timeline view
  • fix highlight of coloured search results in tmux with A_REVERSE attribute
  • correct install path of man pages with 'make install'
  • implement 'fnc tree' command to navigate repository tree
  • deduplicate code with utility functions fnc_home() and strtonumcheck()
  • implement 'fnc path' convenience form of 'fnc timeline path'
  • improve error reporting and cleaner code with rc wrapper
  • make -R repo option available to 'fnc timeline'
  • make -R repo option compatible with 'fnc timeline path' invocation
  • implement 'fnc blame' command with the new libfossil annotate API
  • enable accessing the blame interface from the tree view
  • fix handling of artifacts with no comment string
  • substantial UX and performance improvements by making 'fnc blame' threaded
  • fix bug in 'fnc blame --limit|-n' calls when lines were not annotated
  • enable handling of master branches not named 'trunk' in 'fnc blame'
  • enable accessing the tree interface from the timeline with new 't' key binding
  • add '-C|--no-colour' and 'c' key binding to 'fnc blame'
  • enhance and standardise parsing of path arguments for all commands

fnc 0.2 2021-09-04

  • fix iconv lib linking in macOS builds
  • use pkg-config for detecting ncurses libs
  • prune dead auto.def code
  • bypass pkg-config in configure script on macOS systems
  • major overhaul to use amalgamation build
  • add key bindings to jump to start and end of view
  • man page and documentation updates
  • improve diff of current checkout to always show local changes on disk
  • fix non-standard use of clang extension
  • update autosetup to version 0.7.0
  • add make (un)install rules
  • replace strsep() with self-rolled implementation to build on CentOS 6.5
  • fix bug where local changes only showed when diffing against current checkout
  • enhance timeline --commit|-c option to accept symbolic check-in names
  • add man page installation to make install target
  • plug small memory leak in cmd_diff() routine
  • fix screen rendering bug due to late deallocation of resources
  • improve multibyte to wide character conversion error handling/reporting
  • fix bug involving renamed files in diff view

fnc 0.1 2021-08-28

  • initial commit of infrastructure for the timeline command
  • add branch names and tags to search criteria
  • enhance parsing of malformed RFC822 email addresses in commit usernames
  • display wiki page content of initial wiki commits
  • make display of technote and ticket commits more consistent with fossil(1) ui
  • fix bug where diff algorithm choked on binary files
  • add coloured output to diff view
  • replace BSD-specific getprogname() calls with libf API
  • enhance diff view to display more informative control artifact commits
  • add Linux support so we now build and run on OpenBSD, macOS, and Linux
  • wrap commit comments to the current view width
  • implement cmd_diff() to provide the 'fnc diff' interface
  • tailor help/usage output to the specified command
  • fix invalid memory read in diff routine
  • add support for repository fingerprint version 1
  • fix line wrap bug that truncated lines in fullscreen mode