Skip to content

tig-2.1

Compare
Choose a tag to compare
@jonas jonas released this 23 Apr 21:20
· 855 commits to master since this release
tig-2.1

I just released version 2.1 of Tig which brings a lot of improvements to speed
up usage in large repositories such as the Linux kernel repo (see improvements
related to #310, #324, #350, and #368). Else this release brings minor
improvements across the board plus a fair amount of bug fixes. See below for
more details.

Release notes

Improvements:

  • Improve C99 compliance so Tig compiles with the native compilers on
    Solaris (SunStudio cc) and AIX (xlc). (GH #380)
  • Add move-half-page-up and move-half-page-down actions. (GH #323)
  • Preserve the cursor position when changing the diff context.
  • Show 'Unstaged changes' above 'Staged changes' in the main view. (GH #383)
  • Add :exec <flags><args...> prompt command to execute commands.
  • Add shorthand for changing the view settings of a single column,
    eg. set main-view-author = short. (GH #318)
  • Show better diff context info in the stage view.
  • Add %(lineno) state variable. (GH #304)
  • Use hash table to speed up refs lookup. (GH #350)
  • Show the file path in the blob view when available.
  • Use set commit-order = default to use Git's default commit order, even when
    the commit graph is enabled. The option will turn off automatic enabling of
    --topo-order when the graph is shown in the main view. (GH #310, #324)
  • Speed up the diff view in large repos by loading git-describe info after the
    diff content has been read. (GH #324)
  • Add the old graph rendering as an option. (GH #310, #324)
  • Add main-options setting for specifying default main view options.
    Example: set main-options = --max-count=1000. (GH #368)
  • See contrib/large-repo.tigrc for settings that will help to speed up Tig in
    large repos. (GH #368)
  • Add :save-options <file> prompt command to save config to file. (GH #315)

Bug fixes:

  • Update manual to reflect default keybinding changes. (GH #325)
  • Fix graph support for --first-parent. (GH #326)
  • Fix off-by-one error when opening editor from the grep view.
  • Fix status on-branch information.
  • Fix main view to handle the case when git-log doesn't find any commits.
  • Fix corner case when parsing diff chunk when lines information is missing.
  • Ensure main view changes commits are shown right before the current HEAD.
  • Fix rendering of boundary commits.
  • Fix compilation with GNU Make 3.80 by removing $(abspath). (GH #362)
  • Fix config parsing to support shell-like quoting in user-defined command,
    e.g. bind generic <Ctrl-f> :!git log -G"%(prompt Prompt: )" (GH #371)
  • Make diff meta information colors more consistent with Git. (GH #375)
  • Fix segfault when updating changes in a maximized stage view opened via the
    main view. (GH #376)
  • Handle line number configs where the interval is not specified. (GH #378)
  • Fix display of error messages during startup. (GH #385)
  • Show untracked files outside the current directory like git-status. (GH #230)

Change summary

The diffstat and log summary for changes made in this release.

 INSTALL.adoc                           |    8 +
 Makefile                               |   25 +-
 NEWS.adoc                              |   51 +-
 README.adoc                            |    3 +-
 contrib/config.make-CYGWIN_NT-6.1      |    5 +-
 contrib/config.make-Darwin             |   10 +-
 contrib/large-repo.tigrc               |   20 +
 doc/manual.adoc                        |   41 +-
 doc/tigrc.5.adoc                       |   77 +-
 include/tig/argv.h                     |   36 +-
 include/tig/blame.h                    |    2 +-
 include/tig/blob.h                     |    2 +-
 include/tig/diff.h                     |    9 +-
 include/tig/display.h                  |    5 +-
 include/tig/draw.h                     |    4 +-
 include/tig/git.h                      |   16 +-
 include/tig/graph.h                    |   87 +-
 include/tig/grep.h                     |    2 +-
 include/tig/help.h                     |    2 +-
 include/tig/io.h                       |    3 +-
 include/tig/keys.h                     |   21 +-
 include/tig/line.h                     |    7 +-
 include/tig/log.h                      |    2 +-
 include/tig/main.h                     |    8 +-
 include/tig/map.h                      |   63 ++
 include/tig/options.h                  |   47 +-
 include/tig/pager.h                    |    2 +-
 include/tig/parse.h                    |    2 +-
 include/tig/prompt.h                   |    3 +-
 include/tig/refdb.h                    |   28 +-
 include/tig/refs.h                     |    2 +-
 include/tig/repo.h                     |    4 +-
 include/tig/request.h                  |   10 +-
 include/tig/stage.h                    |    2 +-
 include/tig/stash.h                    |    2 +-
 include/tig/status.h                   |    2 +-
 include/tig/string.h                   |   10 +-
 include/tig/tig.h                      |    5 +-
 include/tig/tree.h                     |    2 +-
 include/tig/types.h                    |   21 +-
 include/tig/util.h                     |    4 +-
 include/tig/view.h                     |   13 +-
 include/tig/watch.h                    |    2 +-
 src/argv.c                             |  203 +++--
 src/blame.c                            |   16 +-
 src/blob.c                             |   28 +-
 src/diff.c                             |  111 ++-
 src/display.c                          |   40 +-
 src/draw.c                             |   73 +-
 src/graph-v1.c                         |  504 +++++++++++
 src/graph-v2.c                         | 1117 ++++++++++++++++++++++++
 src/graph.c                            |  989 +--------------------
 src/grep.c                             |    9 +-
 src/help.c                             |  121 +--
 src/io.c                               |   24 +-
 src/keys.c                             |  211 ++++-
 src/line.c                             |   17 +-
 src/log.c                              |    2 +-
 src/main.c                             |  162 ++--
 src/map.c                              |  122 +++
 src/options.c                          |  364 ++++++--
 src/pager.c                            |   42 +-
 src/parse.c                            |  112 +--
 src/prompt.c                           |  182 ++--
 src/refdb.c                            |  308 ++++---
 src/refs.c                             |   15 +-
 src/repo.c                             |   36 +-
 src/request.c                          |    2 +-
 src/stage.c                            |   39 +-
 src/stash.c                            |    2 +-
 src/status.c                           |   47 +-
 src/string.c                           |    2 +-
 src/tig.c                              |   61 +-
 src/tree.c                             |    2 +-
 src/types.c                            |   10 +-
 src/util.c                             |    2 +-
 src/view.c                             |  271 +++++-
 src/watch.c                            |    4 +-
 test/README.adoc                       |    7 +-
 test/blame/default-test                |   42 +-
 test/blame/start-on-line-test          |   50 ++
 test/diff/diff-context-test            |  213 +++++
 test/diff/editor-test                  |   61 ++
 test/diff/start-on-line-test           |   45 +
 test/grep/default-test                 |    8 +-
 test/grep/editor-test                  |   50 ++
 test/grep/start-on-line-test           |   50 ++
 test/help/all-keybindings-test         |  129 +++
 test/help/default-test                 |  117 +++
 test/log/pretty-format-test            |    3 +-
 test/log/start-on-line-test            |   44 +
 test/log/submodule-test                |    7 +-
 test/main/boundary-test                |   37 +
 test/main/commit-order-edge-case-test  |    1 -
 test/main/commit-title-overflow-test   |    5 +-
 test/main/default-test                 |    2 +-
 test/main/graph-argument-test          |   68 ++
 test/main/main-options-test            |   38 +
 test/main/no-matching-commmits-test    |   25 +
 test/main/refresh-test                 |   27 +-
 test/main/search-test                  |    1 -
 test/main/show-changes-test            |   45 +-
 test/main/start-on-line-test           |   48 +
 test/main/submodule-test               |    5 +-
 test/main/update-unstaged-changes-test |   42 +
 test/main/util.sh                      |    2 +-
 test/main/view-split-test              |   35 +-
 test/refs/branch-checkout-test         |   77 +-
 test/refs/default-test                 |   38 +-
 test/refs/refresh-test                 |  104 +++
 test/refs/replace-test                 |   80 ++
 test/refs/start-on-line-test           |   50 ++
 test/regressions/github-370-test       |   18 +
 test/script/default-test               |    4 +-
 test/stage/default-test                |  245 ++++++
 test/stash/start-on-line-test          |   57 ++
 test/status/file-name-test             |    3 +-
 test/status/on-branch-test             |  179 ++++
 test/status/refresh-test               |   29 +-
 test/status/start-on-line-test         |   45 +
 test/status/untracked-files-test       |   79 ++
 test/tigrc/builtin-error-test          |    2 +-
 test/tigrc/compat-error-test           |    2 +-
 test/tigrc/contrib-tigrc-test          |   26 +
 test/tigrc/env-vars-test               |    2 +-
 test/tigrc/parse-test                  |   16 +-
 test/tigrc/quote-test                  |   63 ++
 test/tigrc/save-option-test            |   29 +
 test/tigrc/tigrc-manpage-examples-test |    2 +-
 test/tigrc/view-column-test            |   64 ++
 test/tools/libgit.sh                   |    7 +-
 test/tools/libtest.sh                  |  200 ++++-
 test/tools/setup-conflict.sh           |   14 +-
 test/tools/test-graph.c                |   46 +-
 test/tree/default-test                 |    2 +-
 tigrc                                  |   22 +-
 tools/aspell.dict                      |   10 +-
 tools/doc-gen.c                        |    2 +-
 tools/header.h                         |    2 +-
 139 files changed, 6381 insertions(+), 2265 deletions(-)

     1 Aaron Lindsay
     6 Charles Bailey
     1 Islam Azab
     5 Jeff King
   108 Jonas Fonseca
     1 Peter Dave Hello
     1 The Gitter Badger
     1 Tom Greuter