tig-2.5.5

Improvements:

  • Make word-diff a toggleable option. (#1119, #1125)

  • Add Linux installation instructions. (#1121, #1126)

  • Allow :back to work across separate blame views. (#1123, #1127)

  • Add auto-refresh to log view. (#1128)

  • Expose %(file_old), useful for deleted and renamed files. (#1132)

  • Enable jumping back in main view. (#628, #1138)

  • Add PCRE (Perl Compatible Regular Expressions) support. (#1137, #1143)

  • Pass command line args through to diff-files in status view. (#1152, #1155)

  • Remove quotes from TIG_LS_REMOTE to allow inline shell commands. (#1160, #1161)

  • Avoid pushing identical history state in main view.

  • Replace useless strncpy to avoid compilation warning with GCC 8.

  • Update utf8proc to v2.7.0.

  • Update distclean rule to preserve tarball contents. (#1167, #1169)

  • Add reference types stash and other. (#1160, #1172)

  • Auto refresh view upon option change.

  • Allow to toggle revision filtering. (#1173)

Bug fixes:

  • Fix null dereferences on unset format strings. (#1136, #1159)

  • Fix invalid read in log_read. (#1128)

  • Restore support for tig log --graph. (#1128)

  • Further fix to fullscreen navigation.

  • Fix blame when opened from an initial diff view. (#1135)

  • Fix stash view when using tig --all or tig revs. (#1146, #1147)

  • Avoiding null pointer dereference. (#1096)

  • Fix navigation between chunks after splitting chunk. (#1101, #1162)

  • Fix status line when toggling general options. (#1163, #1164)

  • Honor reference-format = hide:tag in diff view. (#1168, #1170)

  • Fix crash on :toggle file-args.

tig-2.5.4

Improvements:

  • Add FreeBSD installation instructions. (#1093)

  • Add TIG_EDITOR environment variable to configure editor. (#889, #1098)

  • Enable mailmap by default to match git log’s behaviour. (#1104, #1105)

  • Enable tilde expansion for diff-highlight. (#1107)

Bug fixes:

  • Escape variables with %% in external commands. (#1091, #1095)

  • Fix parsing of -L argument. (#1100)

  • Bugfix: smart-case does not work when search term contains a space. (#1108)

  • Use ncursesw by default on Linux. (#920)

  • Replace obsolete macro ‘AC_CONFIG_HEADER’ in configure.ac.

tig-2.5.3

Bug fixes:

  • Fix autoconf checking for readline. (#1072)

  • Fix segfault when saving a view with no column.

  • Reset view→parent when main view is promoted.

  • Fix segfault when pressing Enter in a child main view.

  • Restore lazy navigation.

  • Format time_t values portably and fix other values too. (#1084, #1085)

  • Fix loop when wrapping line with ISO-8859-1 character. (#1087, #1088)

tig-2.5.2

Incompatibilities:

  • Change directory from the next argument, from now use tig -C /path/to/repo. (#1079)

Improvements:

  • Jump from blame to commit. (#355)

  • Start blame of an uncommitted deleted line from HEAD so the line’s origin can be traced. (#1008, #1009)

  • Add line-graphics = auto. (#834, #1019)

  • Allow maxwidth to be expressed in % of the view width. (#1021)

  • Pass stash args through. (#1022, #1030)

  • Make build work on IBM i. (#1051, #1052)

  • Restore fullscreen navigation. (#1053)

  • Update utf8proc to v2.6.1.

  • Add some range so control chars ^ and _ are also supported. (#1041, #1058)

  • Disable ncurses extended key values so that esc-codes can be used. (#1046, #1049)

  • Use id column for commit id only. (#1025, #1056)

  • Some minor updates for scrolling and for a double-click in diff. (#1060)

  • Add scroll-half-page-up and scroll-half-page-down actions. (#531, #1075)

  • Allow to generate a compilation database. (#1064)

  • New command stage-update-part.

  • The line number before a diff was applied is exposed as %(lineno_old). (#1081)

Bug fixes:

  • Fix wrapping of lines with multibyte characters. (#988)

  • Improve highlighting of search with $ regex. (#1000)

  • Update tracking branch when refreshing status view. (#1015)

  • Fix vertical lines in Putty with UTF-8 graphics. (#981, #983)

  • Fix parsing of three-way chunk headers with extra dashes.

  • Update tracking branch when refreshing status view. (#1015, #1020)

  • Handle filename with space in diff view. (#1035)

  • The stash view requires a working tree.

  • Replace useless strncpy to avoid compilation warning. (#1036)

  • Zsh completion fixes. (#940, #1047)

  • Handle undefined __git_complete. (#1011, #1055)

  • Fix help messages for half-page and page up. (#1054)

  • Let -S, -G and --grep= pattern override readline history.

  • Fix bash completion issue with worktrees (#1018).

  • Fix parsing of commit line from git log --left-right output in pager view.

  • Fix %(lineno) computation for hunk postimages that span only one line. (#1062)

  • Align relative-compact dates to the right. (#1067)

  • Fix empty split diff view when navigating quickly in the stash view.

  • Avoid depending on wcwidth in test by removing Variation Selector. (#1065)

  • Open the blob view with the cursor correctly positioned.

  • Update %(text) when navigating diff contents. (#1082)

tig-2.5.1

Improvements:

  • bash/zsh completion: reimplement and decrease runtime by factor 1863. (#795)

  • Add binding to reflog view to toggle reference display.

  • Fail if tig is given an invalid or ambiguous ref. (#980)

  • Make tig process-group leader an option. (#986, #951)

  • Handle GIT_WORK_TREE environment variable.

  • The blame view requires a working tree.

  • Fix use of deprecated vwprintw() function.

  • Update utf8proc to v2.5.0.

  • Add --word-diff=plain colorizing support. (#221)

Bug fixes:

  • Fix segmentation fault. (#971)

  • Fix cursor position after "Move to parent" in blame view. (#973)

  • Fix crash on adding a line to a view. (#523)

  • Fix memory leak in diff unit.

  • Fix loop after refresh or change in refs/main split view. (#991)

  • Fix occasional crash on custom key bindings. (#1001)

tig-2.5.0

Improvements:

  • Single file view enters blame mode on "b". (#804)

  • Show untracked files in the default view. (#762)

  • Disable graph if log.follow is enabled and there is only one pathspec. (#881)

  • Disable graph for author searches.

  • git_colors: interpret ul as underline.

  • Add refname variable. (#900)

  • Add -C option to specify the working directory. (#570)

  • Improve behaviour of auto and periodic refresh modes. (#389, #441, #482, #794, #888, #932)

  • Add support for repos created with git --work-tree. (#872)

  • Add diff-highlight to pager mode.

  • Show annotated commits in main view. (#819)

  • Introduce reflog view. (#538)

  • Add option to start with cursor on HEAD commit. (#755)

  • Support combined diffs with more than 2 parents.

  • Improve how a toggle option value is shown on the status line. (#879)

  • Add options to filter refs output. (#694)

  • Update utf8proc to v2.4.0. (#961)

Bug fixes:

  • Fix garbled cursor line with older ncurses versions.

  • Fix diff highlighting of removed lines starting with — and added lines starting with ++. (#871, #875)

  • Fix loop when displaying search result if regex matches an empty string. (#866)

  • Add synchronous command description in tigrc.

  • Fix parsing of git rev-parse output. (#884)

  • Propagate --first-parent to diff arguments. (#861)

  • Use proper type for hash table size. (#858)

  • Fix incorrect cppcheck warning about realloc() use.

  • Don’t shift signed int by 31 bits.

  • Fix Vim going background after running Tig outside of a git repository. (#906)

  • make-builtin-config: use "read -r". (#912)

  • Fix segfaults with readline 8.0. (#893)

  • Reset state before closing stage view automatically.

  • Don’t use a child view as previous view.

  • Force reload of VIEW_FLEX_WIDTH views only when needed.

  • Combined diff uses @@@ as hunk marker.

  • Fix memory leak induced by tig grep.

  • Fix memory leak in main view.

  • Exit gracefully if refs view was defined without ref column. (#897)

  • Fix pager view not moving up when child view is open.

  • make-builtin-config: Fix unportable sed usage in read_tigrc().

  • Properly detect combined diffs. (#942)

tig-2.4.1

Bug fixes:

  • Add CURSES_CFLAGS to CPPFLAGS. (#856, Linuxbrew/homebrew-core#8440)

tig-2.4.0

Improvements:

  • Add send-child-enter option to control interaction with child views. (#791)

  • Update make config defaults for Cygwin to ncurses6. (#792)

  • Build against netbsd-curses. (#789)

  • Change the blame view to render more like git blame. (#812)

  • Improve worktree and submodule support. (#459, #781, #783)

  • Support running Tig via a Git alias. (#763)

  • Use ISO-8601 letters for short relative dates. (#759, #760)

  • Change date formatting to show time zones by default. (#428, #811)

  • Use utf8proc to handle Unicode characters. (#827)

Bug fixes:

  • Fix file(1) argument on Linux used for resolving encodings. (#788)

  • Fix underflow in the file search. (#800, #801)

  • Fix line numbers in grep view when scrolled. (#813)

  • Pass command line args through to the stage view. (#569, #823)

  • Fix resource leak. (#780)

  • Fix various compiler warnings and pointer arithmetic. (#799, #803)

  • Workaround potential null pointer dereferences. (#824)

  • Bind to single and double quotes by using the <SingleQuote> and <DoubleQuote> key mappings. (#821)

  • Make Tig the process-group leader and clean child processes. (#828, #837)

  • Fix sh compatibility in contrib/tig-pick. (#832)

  • Fix incorrect behaviour of up and down keys in diff view when opened from diff preview. (#802, #835)

  • Open the stage view when maximizing a split diff view of (un)staged changes. (#836)

  • Use fully qualified reference name for tags when conflicting with branch name. (#746, #787, #849)

  • Fix resize not working after entering command. (#845) (#846)

  • Use stack allocated memory to handle TIG_LS_REMOTE. (#839)

  • Fix deleted file mode line remains highlighted after hovering in diff or stage view. (#851)

  • Fix TIG_LS_REMOTE not working with git-ls-remote(1). (#853, #854)

tig-2.3.3

Bug fixes:

  • Revert "Handle \n like \r (#758)". (GH #769)

  • Fix GH #164 by catching SIGHUP.

  • Change refs_tags type to size_t.

tig-2.3.2

Bug fixes:

  • Fix busy loop detection to handle large repos. (GH #164)

tig-2.3.1

Improvements:

  • Restore TTY attributes. (GH #725)

  • Handle \n like \r. (GH #758)

Bug fixes:

  • Add workaround that detects busy loops when Tig loses the TTY. This may happen if Tig does not receive the HUP signal (e.g. when started with nohup). (GH #164)

  • Fix compatibility with ncurses-5.4 which caused copy-pasting to not work in the prompt. (GH #767)

  • tig(1): document correct environment variable. (GH #752)

tig-2.3.0

Incompatibilities:

  • The width setting on the status, text and commit-title columns was never applied and has been removed. (GH #617)

Improvements:

  • Improve load performance by throttling screen updates. (GH #622, #629)

  • Speed up graph rendering. (GH #638)

  • Enable scroll optimizations for Terminal.app and iTerm2. (GH #637)

  • Improve the test suite portability to not depend on GNU sed. (GH #609, #614)

  • Make build reproducible. (https://reproducible-builds.org/) (GH #613)

  • Enable binding to more symbolic keys and keys with control modifier: F13-F19, ShiftLeft, ShiftRight, ShiftDel, ShiftHome, ShiftEnd, ShiftTab, Ctrl-C, Ctrl-V, Ctrl-S, and Ctrl-@. (GH #314, #619, #642)

  • Persist readline history to ~/.tig_history or $XDG_DATA_HOME/tig/history. Use history-size to control the number of entries to save. (GH #620, #713, #714, #718)

  • Preload last search from persistent history. (GH #630)

  • Add view-close-no-quit action, unbound by default. (GH #607)

  • Add mouse-wheel-cursor option (off by default) when set to true causes wheel actions to prefer moving the cursor instead of scrolling. (GH #608)

  • Add truncation-delimiter option, set to ~ by default. (GH #646)

  • Add -q parameter to source for "source-if-present". (GH #612)

  • Add :echo prompt command to display text in the status bar. (GH #626, #636)

  • Make diff-highlight colors configurable. (GH #625, #633)

  • Let Ctrl-C exit Y/N dialog, menu prompts and the file finder. (GH #632, #648)

  • Hide cursor unless at textual prompt. (GH #643)

  • Expand tilde (~) in :script paths. (GH #674)

  • Show single-line output of external command in status bar. (GH #200, #557, #678)

  • Disable the graph when --no-merges is passed. (GH #687)

  • Print backtraces on segfault in debug mode.

  • Ignore script lines starting with # (comment). (GH #705)

  • Complete repo:* variables when readline is enabled. (GH #702)

  • Incorporate XTerm’s wcwidth.c to find Unicode widths. (GH #691)

Bug fixes:

  • Fix graph display issues. (GH #419, #638)

  • Fix and improve rendering of Unicode characters. (GH #330, #621, #644, #682)

  • Handle hyphenated directory names when listing content. (GH #602)

  • Do not jump to next match when cancelling the search prompt. (GH #627)

  • Fix clearing of the status line after Ctrl-C. (GH #623, #649)

  • Fix handling of width on line-number and trimmed width of 1. (GH #617)

  • Set cursor position when not updating prompt contents. (GH #647)

  • Erase status line at exit time for users without altscreen-capable terminals. (GH #589)

  • Fix unexpected keys when restoring from suspend (Ctrl-Z). (GH #232)

  • contrib/vim.tigrc: Also bind G in the main as a workaround for limitations of the none action. (GH #594, #599)

  • Only override blame-options when commands are given and fix parsing of -C. (GH #597)

  • Fix diff name discovery to better handle prefixes.

  • Interpret button5 as wheel-down. (GH #321, #606)

  • Fix back / parent in tree view. (GH #641)

  • Fix memory corruption in concat_argv and file finder. (GH #634, #655)

  • Fix reading from stdin for tig show.

  • Document problem of outdated system-wide tigrc files in Homebrew. (GH #598)

  • Repaint the display when toggling line-graphics. (GH #527)

  • Fix custom date formatting support longer strings. (GH #522)

  • Don’t segfault on ":exec" irregular args. (GH #686)

  • Fix segfault when calling htab_empty. (GH #663, #745)

tig-2.2.2

Upgrade instructions:

  • The status-untracked-dirs option was renamed to status-show-untracked-dirs to match the new status-show-untracked-files option.

Improvements:

  • Use diff-options when preparing the diff in the stage view to make the diff state configurable. (GH #545)

  • Add status-show-untracked-files option mirroring Git’s status.showUntrackedFiles to toggle display of untracked files. in the status view. On by default. (GH #562)

  • Update ax_with_curses.m4 and use pkg-config to detect. (GH #546)

  • Add tig-pick script for using Tig as a commit picker. (GH #575, #580)

  • Add "smart case" option (set ignore-case = smart-case) to ignore case when the search string is lower-case only. (GH #320, #579)

Bug fixes:

  • Fix author ident cache being keyed by email only. (GH #424, #526, #547)

  • Fix periodic refresh mode to properly detect ref changes. (GH #430, #591)

  • Add workaround for detecting failure to start the diff-highlight process.

  • Show diffs in the stash view when set mailmap = true. (GH #556)

  • Fix parsing of git-log revision arguments, such as --exclude=... in conjunction with --all. (GH #555)

  • Fix diff stat parsing for binary copies.

  • Fix crash when resizing terminal while search is in progress. (GH #515, #550)

  • Fix argument filtering to pass more arguments through to Git.

  • Check for termcap support in split tinfo libs. (GH #568, #585)

tig-2.2.1

Tarballs should now be downloaded from GitHub. Either go to https://github.com/jonas/tig/releases or use the following pattern:

https://github.com/jonas/tig/releases/download/tig-VERSION/tig-VERSION.tar.gz

MD5 checksums can be found at:

https://github.com/jonas/tig/releases/download/tig-VERSION/tig-VERSION.tar.gz.md5

Similarly, the home page is now also on GitHub at https://jonas.github.io/tig/. A big thanks to Simon L. B. Nielsen for generously hosting Tig on nitro.dk!

Improvements:

  • Support Git’s diff-highlight program when diff-highlight is set to either true or the path of the script to use for post-processing.

  • Add navigation between merge commits. (GH #525)

  • Add A as a binding to apply a stash without dropping it.

  • Bind Ctrl-D and Ctrl-U to half-page movements by default.

  • manual: Mention how to change default Up/Down behavior in diff view.

Bug fixes:

  • Reorganize checking of libraries for termcap functions.

  • Fix :goto <id> error message.

tig-2.2

Incompatibilities:

  • Note that all user-defined commands are now executed at the repository root instead of whatever subdirectory Tig was started in. (GH #412)

  • Remove cmdline-args option to avoid problems where setting it in ~/.tigrc potentially breaks other views due to its "context-sensitive" nature, where a git-log option maybe cause git-grep to fail. (GH #431)

Improvements:

  • Use .mailmap to show canonical name and email addresses, off by default. Add set mailmap = yes to ~/.tigrc to enable. (GH #411)

  • Highlight search results, configurable via search-result color. (GH #493)

  • Wrap around when searching, configurable via wrap-search setting.

  • Populate %(file) with file names from diff stat. (GH #404)

  • tig --merge implies --boundary similar to gitk.

  • Expose repository variables to external commands, e.g. %(repo:head) gives the branch name of the current HEAD and %(repo:cdup) for the repo root path.

  • Add make uninstall. (GH #417)

  • Add ZSH completion file (based on Bash completion) (GH #433)

  • Expose the text of the currently selected line as the %(text) (GH #457)

  • Allow users to specify rev arguments to blame (GH #439)

  • Update OSX make config to find brew installed ncurses

  • Add sample git-flow keybinding (GH #421)

  • Add chocolate theme (GH #432)

  • Show stash diffs. (GH #328)

  • Make user tigrc location configurable. (GH #479)

  • Compact relative date display mode. (GH #331)

  • Add date column option controlling whether to show local date.

  • Move to parent commit in the main view. (GH #388)

  • Add :goto <rev> prompt command to go to a git-rev-parse`d revision, e.g. `:goto some/branch or :goto %(commit)^2.

  • Respect the XDG standard for configuration files. (GH #513)

  • Show tracking information in tig status (GH #504)

  • Resolve diff paths when diff.noprefix is true. (GH #487, #488)

  • Support for custom strftime(3) date formats, e.g.:

    set main-view-date = custom
    set main-view-date-format = "%Y-%m-%d"

Bug fixes:

  • Prevent staged rename from displaying unstaged changes (GH #472, #491)

  • Fix corrupt chunk header during staging of single lines. (GH #410)

  • Fix out of bounds read in graph-v2 module. (GH #402)

  • Add currently checked out branch to %(branch). (GH #416)

  • Size diff stats correctly for split views.

  • Fix git-worktree support by using git-show-ref. (GH #437)