Make local tags and normal branches use normal font-weight
Change color of HEAD reference to use cyan as normal branches
but with bold font.
Change color of HEAD reference to use cyan as normal branches
but with bold font.
Show the tracked remote branch with bold text
... and others with normal font-weight.
... and others with normal font-weight.
Disable opening views that require a git directory when in pager mode
Fix pager mode by always doing the isatty()
Also relax the opt_git_dir check.
Also relax the opt_git_dir check.
stage: disable whitespace warnings from git apply when staging updates
Improve perfomance and usability when updating many files
Split the update function into one for single file and all files in a
section so that only one fork of update-index is required in both cases.
Show progress for long running updates (e.g. importing the Linux kernel)
where git needs to hash many objects (>20k).
Split the update function into one for single file and all files in a
section so that only one fork of update-index is required in both cases.
Show progress for long running updates (e.g. importing the Linux kernel)
where git needs to hash many objects (>20k).
Fix and improve status refreshing after updating
Update the view offset so the current line is already visible.
This requires that the display is split or initialized before
starting to load the view so status_open has the view->height
available.
Update the view offset so the current line is already visible.
This requires that the display is split or initialized before
starting to load the view so status_open has the view->height
available.
Fix uninitialized variable warning
Output extra \n on tig -h
The usage string does not contain a '\n' as the last character which is
annoying when calling 'tig -h'.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
The usage string does not contain a '\n' as the last character which is
annoying when calling 'tig -h'.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Avoid reloading the status view when nothing was updated
Oops, fix delimiter documentation
Add support for preparing the initial commit in the status view
Rename "main-delim" color to the more generic "delimiter"
It was already used by views other than main.
It was already used by views other than main.
Show the current branch in the status view
Also, improve the positioning of the cursor line after updates to
restore or select something that is "updateable". Adding new files
should now work more intuitively.
Also, improve the positioning of the cursor line after updates to
restore or select something that is "updateable". Adding new files
should now work more intuitively.
Save current branch from rev-parse output and highlight it
The chosen color is red with bold font, however, maybe all other refs
should be toned down and only the current branch should use bold font.
The chosen color is red with bold font, however, maybe all other refs
should be toned down and only the current branch should use bold font.
blame: Fix opening from subdirectory and consecutive invokations
Remove deprecated options and cleanup option parsing
More blame view fixes
Various fixes and improvements of the new blame view
- Fix entering from status and stage views by making opt_ref setting
optional.
- Use separate opt_file variable, since the tree view also uses
opt_path.
- Fix entering from status and stage views by making opt_ref setting
optional.
- Use separate opt_file variable, since the tree view also uses
opt_path.
Add blame view
It may both be entered from the command line using:
tig blame [rev] path
or from either the status and stage, as well as by using the tree view
to navigte.
It may both be entered from the command line using:
tig blame [rev] path
or from either the status and stage, as well as by using the tree view
to navigte.
Add hack to allow view loading to have multiple phases
.. by avoiding end_update() call after last read line.
.. by avoiding end_update() call after last read line.
Simplify subcommand option parsing by moving it out of the loop
draw_text: remove unused col argument
Use rewritten parent info from --parents to simplify the revgraph
Move unrelated UTF-8 setup code out of parse_options
tigrc(5): Improve documentation of new show-* options
configure: test for git binary and improve config subcommand test
Call realloc() less often because it is potentially slow.
Signed-off-by: Dominik Vogt <dvogt@ffm.tc.iot.dtag.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Dominik Vogt <dvogt@ffm.tc.iot.dtag.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
New config options show-author, show-date, show-refs, show-line-numbers.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fixed displaying local tags.
Added a new colour main-local-tag.
Signed-off-by: Dominik Vogt <dvogt@ffm.tc.iot.dtag.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Added a new colour main-local-tag.
Signed-off-by: Dominik Vogt <dvogt@ffm.tc.iot.dtag.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
New actions toggle-date, toggle-author, and toggle-refs.
Signed-off-by: Dominik Vogt <dvogt@ffm.tc.iot.dtag.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Dominik Vogt <dvogt@ffm.tc.iot.dtag.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fix index refreshing into separate call so diff-files is always run
draw_text: reduce indentation level
draw_text: minor cleanup to use fewer local variables
utf8_length: add reserve flag for reserving a trailing character
Replace unused coloffset with reserve flag, which will reserve at least
one character cell at the end. Use it for reserving a delimiter character
when use_tilde is TRUE, and avoid a second call to utf8_length().
Replace unused coloffset with reserve flag, which will reserve at least
one character cell at the end. Use it for reserving a delimiter character
when use_tilde is TRUE, and avoid a second call to utf8_length().
TODO: --boundary flag is already used
0.11.git
tig-0.10.1
More verbose diff headers (including dates and committer)
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fix drawing "outside" the screen in the status and pager views
It was causing text to wrap to next line, but with the new function to
draw text with limited width this has become much easier.
It was causing text to wrap to next line, but with the new function to
draw text with limited width this has become much easier.
Fixed handling of UTF8 tag names and commit messages.
[ jf: fix off-by-one error for trimmed tilde drawing and bad padding
substraction ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
[ jf: fix off-by-one error for trimmed tilde drawing and bad padding
substraction ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Make configure search for the ncursesw library first
Also (unconditionally) define _XOPEN_SOURCE_EXTENDED before including
curses.h to have extended functions as recommended by ncurses(3).
Also (unconditionally) define _XOPEN_SOURCE_EXTENDED before including
curses.h to have extended functions as recommended by ncurses(3).
Fix compiler warnings: pointer of type ‘void *’ used in arithmetic
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fix signed char comparison where char is unsigned by default
tig uses a char as a flag, and expects that to have three
values: TRUE, FALSE, and -1. When char is unsigned char (such
as on PPC), this fails with the compiler warning "comparison is
always false due to limited range of data type".
So explicitly make the flag a signed char.
Detecting the int8_t type with the autoconf macro
AC_CREATE_STDINT_H would probably be a better fix.
Signed-off-by: Russell Steicke <russellsteicke@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
tig uses a char as a flag, and expects that to have three
values: TRUE, FALSE, and -1. When char is unsigned char (such
as on PPC), this fails with the compiler warning "comparison is
always false due to limited range of data type".
So explicitly make the flag a signed char.
Detecting the int8_t type with the autoconf macro
AC_CREATE_STDINT_H would probably be a better fix.
Signed-off-by: Russell Steicke <russellsteicke@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fixed spurious "/bin/sh: --list: command not found" error
If git has been installed with a separate libexecdir which is not in path
(for example, a standard msysgit installation), tig would not find
"git-config", and we must instead find the "git" binary and call it as
"git config".
Signed-off-by: Peter Karlsson <peter@softwolves.pp.se>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
If git has been installed with a separate libexecdir which is not in path
(for example, a standard msysgit installation), tig would not find
"git-config", and we must instead find the "git" binary and call it as
"git config".
Signed-off-by: Peter Karlsson <peter@softwolves.pp.se>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Refresh the index when opening the status view to avoid "empty diffs"
Add rename support to the status view
Renames are now picked up and displayed with the 'R' flag instead of
being shown as a 'C'opy and 'D'eletion. Remove --find-copies-harder from
the arguments to diff-index and diff-files since this option seem to
interfere with rename detection.
Renames are now picked up and displayed with the 'R' flag instead of
being shown as a 'C'opy and 'D'eletion. Remove --find-copies-harder from
the arguments to diff-index and diff-files since this option seem to
interfere with rename detection.
Make it more clear that use of configure (and autoreconf) is optional
Suggested by Junio.
Suggested by Junio.
Replace SYSCONFDIR value in distributed documentation distributed
.. by defining sysconfdir to ++SYSCONFDIR++ when building documentation
for the release branch. This also improved quoting of paths during
installation.
Reported by Jakub Narebski.
.. by defining sysconfdir to ++SYSCONFDIR++ when building documentation
for the release branch. This also improved quoting of paths during
installation.
Reported by Jakub Narebski.
tig-0.10.1.git
tig-0.10
Make command line parsing more compatible with gitk
Many of the command line arguments are relics from the beginning of the
project and served as a method of configuring tig before support for the
configuration file was introduced. Since then they have become less
useful and make tig less compatible with gitk and other git repo
viewers.
This commit tries to fix this by deprecating all command line arguments
except the very tig specific version and help arguments. The option to
enter the status view (-S) is moved to a new "status" subcommand. Tig
will warn about the deprecation and advise -S users to use the new
subcommand. The handling of "--" is kept as it is for compatibility, but
will be removed in a future version. Finally, the man page and manual
was updated to reflect the new options and subcommands.
So enjoy the new less cludgy `tig --all' ... I will! :)
Many of the command line arguments are relics from the beginning of the
project and served as a method of configuring tig before support for the
configuration file was introduced. Since then they have become less
useful and make tig less compatible with gitk and other git repo
viewers.
This commit tries to fix this by deprecating all command line arguments
except the very tig specific version and help arguments. The option to
enter the status view (-S) is moved to a new "status" subcommand. Tig
will warn about the deprecation and advise -S users to use the new
subcommand. The handling of "--" is kept as it is for compatibility, but
will be removed in a future version. Finally, the man page and manual
was updated to reflect the new options and subcommands.
So enjoy the new less cludgy `tig --all' ... I will! :)
Add system-wide configuration file and new config file environment vars
Introduced envvars TIGRC_USER and TIGRC_SYSTEM to control which config
file is used. The default user specific config file can be overridden
with TIGRC_USER. Before loading the user config file, tig now looks for
a system wide config file ($(sysconfdir)/tirgc by default). This can be
overridden with the environment variable TIGRC_SYSTEM.
Also corrected a small mistake in the Makefile. Instead of setting
CFLAGS for '-D...' compiler options, use CPPFLAGS.
[ The original code from Dominik was changed so that tig always reads
the system-wide configuration file. The documentation was improved
so the configured sysconfdir is used in the generated documentation.
-- jonas ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Introduced envvars TIGRC_USER and TIGRC_SYSTEM to control which config
file is used. The default user specific config file can be overridden
with TIGRC_USER. Before loading the user config file, tig now looks for
a system wide config file ($(sysconfdir)/tirgc by default). This can be
overridden with the environment variable TIGRC_SYSTEM.
Also corrected a small mistake in the Makefile. Instead of setting
CFLAGS for '-D...' compiler options, use CPPFLAGS.
[ The original code from Dominik was changed so that tig always reads
the system-wide configuration file. The documentation was improved
so the configured sysconfdir is used in the generated documentation.
-- jonas ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Make it possible to overwrite the default (terminal) colors
Use the setting of the "default" color pair to set the default colors of
the terminal via assume_default_colors(). Fall back to white on black.
With this it is possible to no longer use the terminal colors if
desired.
This was requested by Sebastian Harl as a way to fix Debian bug 399884.
Use the setting of the "default" color pair to set the default colors of
the terminal via assume_default_colors(). Fall back to white on black.
With this it is possible to no longer use the terminal colors if
desired.
This was requested by Sebastian Harl as a way to fix Debian bug 399884.
Add support for showing boundary commits in the main view
The boundary commits are marked using a "^" character, which hopefully
is somewhat intuitive and familiar since git revision specification uses
it as its cut-off prefix.
The boundary commits are marked using a "^" character, which hopefully
is somewhat intuitive and familiar since git revision specification uses
it as its cut-off prefix.
Drop -B from diff options
My main motivation is a recent (almost) rewrite where I actually wanted
to see a "real" diff instead of a rewrite diff.
My main motivation is a recent (almost) rewrite where I actually wanted
to see a "real" diff instead of a rewrite diff.
Simplify documentation building and fix asciidoc.conf dependency
Replace the manpage XSL workarounds with AsciiDoc conf workarounds
This is a lot simpler and generates better manpages (with the required
documentation tools). The XSL stuff was a nightmarish adventure, anyway.
Of course this probably breaks documentation building on some systems.
This is a lot simpler and generates better manpages (with the required
documentation tools). The XSL stuff was a nightmarish adventure, anyway.
Of course this probably breaks documentation building on some systems.
INSTALL: Document the optional documentation tools
Update manpages to not contain contain so many formatting workarounds
... like indentation. However, the '.git/config' thing no longer works.
... like indentation. However, the '.git/config' thing no longer works.
Added examples to tig(1) manpage
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
TODO: Mention tig.c splitting and revgraph rewrite
Install manpages in $(prefix)/share/man
... instead of just $(prefix)/man. This location is also used by git.
... instead of just $(prefix)/man. This location is also used by git.
Updated .gitignore
[ Also ignore XML files. ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
[ Also ignore XML files. ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Removed trailing whitespace.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Added action tree-parent and bound it to backspace by default.
This allow to leave the current directory in the tree view and change to
the parent tree / directory. At the top of the tree, this closes the tree
view. Bound to ',' by default.
Example:
bind tree Left tree-parent
bind tree Right Enter
bind blob Left view-close
This allows to navigate the tree and blob views just with the cursor keys.
[ Cleanup the patch a bit and mention the default keybinding in
manual.txt --jonas ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
This allow to leave the current directory in the tree view and change to
the parent tree / directory. At the top of the tree, this closes the tree
view. Bound to ',' by default.
Example:
bind tree Left tree-parent
bind tree Right Enter
bind blob Left view-close
This allows to navigate the tree and blob views just with the cursor keys.
[ Cleanup the patch a bit and mention the default keybinding in
manual.txt --jonas ]
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Added color option main-revgraph to color the revision graph.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add documentation for undocumented color options.
pp-refs
tree-dir, tree-file
stat-section, stat-none, stat-staged, stat-unstaged, stat-untracked
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
pp-refs
tree-dir, tree-file
stat-section, stat-none, stat-staged, stat-unstaged, stat-untracked
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Minor formatting and spelling fixes.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Ignore HTML files in general
manual: remove section on porcelains
People should already know git and Cogito is being phased out.
People should already know git and Cogito is being phased out.
Makefile: add ASCIIDOC_FLAGS
... so that under Cygwin it can be set to --unsafe, in order for
asciidoc to work.
Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
... so that under Cygwin it can be set to --unsafe, in order for
asciidoc to work.
Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Avoid using git-diff since it might run external diff drivers
Relying only on the diff plumbing seems to be the safer thing to do.
Relying only on the diff plumbing seems to be the safer thing to do.
Use --no-color option when calling git-log and git-diff
This fixes problems when user has set color.diff=true. The problem was
first reported for gitk on the git mailing list.
This fixes problems when user has set color.diff=true. The problem was
first reported for gitk on the git mailing list.
Rearrange the order of option parsing
Fix crash when opening mergetool for lines that are not unmerged
Use get_key_name() in get_key()
It was factored out in the external command patch.
It was factored out in the external command patch.
Add missing = for comparison in obsolete actions check
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Collect remaining string in last entry when parsing config file lines
This raises the length of external commands to what fits in the command
buffer (1024 characters).
This raises the length of external commands to what fits in the command
buffer (1024 characters).
Improve sanity check error messages
Obsolete the cherry-pick action and define as builtin external command
Add support binding keys to running external commands
Each command can have replacement string such as %(commit), %(head), and
%(blob), which are substituted before the command is run.
Each command can have replacement string such as %(commit), %(head), and
%(blob), which are substituted before the command is run.
Unify REQ_NONE and REQ_UNKNOWN by moving REQ_NONE to be the last request
tig-0.10.git
tig-0.9.1
SITES: 'Tarballs' is a bit more telling than 'Releases'
Cleanup status_request to make it reload the status view by default
Add support for launching git-mergetool from the status view
Unmerged entries now suggests to press M to resolve merge conflicts.
Unmerged entries are no longer shown for the "staged changes"; the same
goes for 'M'odified entries following an 'U'nmerged entry.
Unmerged entries now suggests to press M to resolve merge conflicts.
Unmerged entries are no longer shown for the "staged changes"; the same
goes for 'M'odified entries following an 'U'nmerged entry.
Refactor code to open_external_viewer
This way there is only one place calling system. In addition, files
opened in an editor will now wait for the user to press Enter to
continue. Whether this is good or bad can be discussed but it feels more
consistent and could help the user spot any errors printed by the
editor.
This way there is only one place calling system. In addition, files
opened in an editor will now wait for the user to press Enter to
continue. Whether this is good or bad can be discussed but it feels more
consistent and could help the user spot any errors printed by the
editor.
Detect working trees and disable the status view when it is missing
In the process, make any call to report() before a view has been
set end up in die() to avoid problems with uninitialized views.
In the process, make any call to report() before a view has been
set end up in die() to avoid problems with uninitialized views.
Document the refresh request
Ignore REQ_NONE in the help view and improve unbound request handling
Never put the release number in the tarball name for tagged versions
... when the version is given using DIST_VERSION!
... when the version is given using DIST_VERSION!
Also ignore generated .md5 files for tarballs
Add support for refreshing/reloading the status view
... and also refresh it after edits to capture any changes in the
working tree.
... and also refresh it after edits to capture any changes in the
working tree.
Remove unused 'view' argument from open_editor
Include autoconf file for 'make dist'
Fix the clean rule to never remove generated doc files
... this is now done by new distclean rule, which will also
purge autoconf files.
... this is now done by new distclean rule, which will also
purge autoconf files.
Fix out-of-range lineno when reloading the status view
Reproducable when standing on the last line of the status view with no
staged files and pressing 'u' twice. The first will make the current
line point outside the range of lines in the view, making the second
update read garbage memory and calling die because of an unknown status
line ID.
Restore previous line number if possible else move make the current
line index be that of the last line in the updated view.
Reproducable when standing on the last line of the status view with no
staged files and pressing 'u' twice. The first will make the current
line point outside the range of lines in the view, making the second
update read garbage memory and calling die because of an unknown status
line ID.
Restore previous line number if possible else move make the current
line index be that of the last line in the updated view.
Fix open_editor to make the file path relative to the project root
.. by prefixing the file path with opt_cdup if requested.
.. by prefixing the file path with opt_cdup if requested.