# Tig: text-mode interface for git

Tig is a git repository browser that additionally can act as a pager for output from various git commands.

When browsing repositories, it uses the underlying git commands to present the user with various views, such as summarized revision log and showing the commit with the log message, diffstat, and the diff.

Using it as a pager, it will display input from stdin and colorize it.

## Resources

- Homepage: http://jonas.nitro.dk/tig/

- Manual: http://jonas.nitro.dk/tig/manual.html

- Tarballs: http://jonas.nitro.dk/tig/releases/

- Git URL: git://github.com/jonas/tig.git (master) or git://repo.or.cz/tig.git (mirror)

- Gitweb: http://repo.or.cz/w/tig.git

- Q&A: http://stackoverflow.com/questions/tagged/tig

## Installation instructions

Download a tarball from http://jonas.nitro.dk/tig/releases or clone the tig repository git://github.com/jonas/tig.git. Documentation files are available in the tarballs and in the release branch of the tig repository.

The quick and simple way to install tig with documentation is to run:

    $ make
    $ make install install-doc

From tig’s git repository it is also possible to install documentation directly from the release branch to avoid installing the documentation tool chain:

    $ make install-release-doc

Optionally, you can use the `configure` script to detect dependencies:

    $ ./configure
    $ make
    $ make install

If your iconv library is not in the default library and include path, you’ll probably want to pass the "--with-libiconv" option to the "configure" script to tell it where to look. Note, if you are building from the tig repository, you need to first make the configure script:

    $ make configure

Build settings are read from the file "config.make". To manually configure tig to use the ncurses library with wide character support, add the line:

    LDLIBS = -lncursesw

You might also need an additional line to include the proper header file (see tig.h for more information):

    CPPFLAGS = -DHAVE_NCURSESW_CURSES_H

Note for packagers: For tig’s configure script to work as expected you should avoid configuring and building ncurses using "--with-shared".

Release notes documenting notable changes are available in the NEWS file. When upgrading, you are advised to also read them after you have completed the installation.

The following tools and packages are needed:

Tool | Description
--- | ---
git-core | Tig is just a frontend for git.
ncurses or ncursesw | Be sure to have the development files installed. Usually they are available in a separate package ending with `-dev`. Note also that ncurses with wide character support (ncursesw) is required to properly handle UTF-8 encoded strings.
iconv | If iconv is not provided by the c library you need to change the Makefile to link it into the binary.

The following optional tools and packages are needed for creating the configure script and building documentation:

Tool | Description
--- | ---
autoconf | Contains autoreconf for generating configure from configure.ac.
asciidoc (>= 8.4) | Generates HTML and (DocBook) XML from text.
xmlto | Generates manpages and chunked HTML from XML.
DocBook XSL (>= 1.72.0) | Used by xmlto for building manpages.
DocBook (DSSL/Jade) tools | Generates PDF from XML. Also known as docbook-utils.