Squelsh output of update-index when loading the status view
Avoid splitting the view when navigating stage view in full screen
Use 3 as the minimum width of formatted line numbers
It gives a more pleasant experience when "digging" through commits.
And of course, most commits will have diffs smaller than 1000 lines!?
For the blame view it means less flickering in the startup when the
whole file is read.
It gives a more pleasant experience when "digging" through commits.
And of course, most commits will have diffs smaller than 1000 lines!?
For the blame view it means less flickering in the startup when the
whole file is read.
Revert "When toggling options redraw the view instead of the whole display"
This reverts commit d79f15772b0489ae3bf77322706016c733a714c9.
This reverts commit d79f15772b0489ae3bf77322706016c733a714c9.
Fix compatibility for git rev-parse without --symbolic-full-name
Use symbolic-ref instead.
Use symbolic-ref instead.
Error out when starting up in empty main or blame view
This usually means that the arguments did not match any revisions or file.
This usually means that the arguments did not match any revisions or file.
Improve staging of diff chunks
As suggested by Petr Baudis some year ago, make updating of chunks work
stage the chunk the cursor line is within instead of the whole file. Still
stage everything when the cursor is in the diff --stat header.
As suggested by Petr Baudis some year ago, make updating of chunks work
stage the chunk the cursor line is within instead of the whole file. Still
stage everything when the cursor is in the diff --stat header.
Reload the status and stage views after a run request has been handled
Add support for refreshing of the stage view
Consolidate stage reloading for the edit, refresh, and update requests.
It works by first reloading the status view after which the stage view
is closed or reloaded depending on whether the status information of the
stage view still is valid.
Consolidate stage reloading for the edit, refresh, and update requests.
It works by first reloading the status view after which the stage view
is closed or reloaded depending on whether the status information of the
stage view still is valid.
When toggling options redraw the view instead of the whole display
Use werase() instead of wclear() when reloading a view
It behaves much better by not causing the parent view to be repainted.
It behaves much better by not causing the parent view to be repainted.
Share the line number colors between blame view and others
Renames the blame-lineno color to line-number.
Renames the blame-lineno color to line-number.
Rename load_repo_config() to load_git_config()
Do not load repository references when acting as a pager
It will cause git ls-remote to print an error message.
It will cause git ls-remote to print an error message.
Merge branch 'master' of remote-server:src/tig
status: use draw_text completely
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.
Add draw_lineno() and use when drawing the blame and pager view
Add action to maximize the current view; bound to M by default
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.