NEWS: Improve bug fix description
Fix loading of blame data when opened from the tree view
... and CWD is a subdirectory (Debian bug 540766). Also, improve the
tree view to allow entering the parent directory.
... and CWD is a subdirectory (Debian bug 540766). Also, improve the
tree view to allow entering the parent directory.
Fix draw_date to not format anything when time arg is NULL
Fix whitespace
There is whitespaces on 2 of the original source line.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
There is whitespaces on 2 of the original source line.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add support for displaying relative dates
Also unifies all date formats to use the show-date option and the
toggle-date action.
Also unifies all date formats to use the show-date option and the
toggle-date action.
NEWS: Mention date-shorten feature
Merge remote branch 'samb/short-dates'
Show the active (instead of the default) keybindings in the help view
Furthermore, honor the keymap when suggesting actions in the help
messages.
Furthermore, honor the keymap when suggesting actions in the help
messages.
Add an option (and toggle) for shortening the date column by skipping the time.
Signed-off-by: Samuel Bronson <naesten@gmail.com>
Signed-off-by: Samuel Bronson <naesten@gmail.com>
Build with asciidoc-8.4.5
This version seems to be stricter about presubs attributes:
asciidoc -aversion=0.14.1-28-gac66fdb -asysconfdir=/usr/local/etc -b docbook -d manpage tigrc.5.txt
ERROR: tigrc.5.txt: line 12: malformed presubs attribute: normal
ERROR: tigrc.5.txt: line 41: malformed presubs attribute: normal
ERROR: tigrc.5.txt: line 149: malformed presubs attribute: normal
ERROR: tigrc.5.txt: line 366: malformed presubs attribute: normal
make: *** [tigrc.5.xml] Error 1
Based on patch by Ingmar Vanhassel.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
This version seems to be stricter about presubs attributes:
asciidoc -aversion=0.14.1-28-gac66fdb -asysconfdir=/usr/local/etc -b docbook -d manpage tigrc.5.txt
ERROR: tigrc.5.txt: line 12: malformed presubs attribute: normal
ERROR: tigrc.5.txt: line 41: malformed presubs attribute: normal
ERROR: tigrc.5.txt: line 149: malformed presubs attribute: normal
ERROR: tigrc.5.txt: line 366: malformed presubs attribute: normal
make: *** [tigrc.5.xml] Error 1
Based on patch by Ingmar Vanhassel.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fixed some uninitialized variable warnings
GCC 4.3.3, when used with -Wall, emits warnings that those variables "may be
used uninitialized in this function".
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
GCC 4.3.3, when used with -Wall, emits warnings that those variables "may be
used uninitialized in this function".
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Allow multiple text attributes for color commands
This also fixes lazy behavior so that setting the cursor color no longer
automatically sets the text to bold.
This also fixes lazy behavior so that setting the cursor color no longer
automatically sets the text to bold.
Remove macros which are only used for default option values
Make height of split view configurable
Signed-off-by: Tilo Schwarz <tilo@tilo-schwarz.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Tilo Schwarz <tilo@tilo-schwarz.de>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Manual: document that :<number> jumps to the line number
Fix memory allocation check in open_commit_parent_menu
The check was not converted when the code was moved to a separate
function before the commit. To test the menu using the tig repository
start tig using:
tig blame cf63d30cbc4efb2bb87e52c4e54366751bb958fa Makefile
Then go to line 80 (type ":80<enter>") and press the key for moving to
the parent (bound to ',' by default).
The check was not converted when the code was moved to a separate
function before the commit. To test the menu using the tig repository
start tig using:
tig blame cf63d30cbc4efb2bb87e52c4e54366751bb958fa Makefile
Then go to line 80 (type ":80<enter>") and press the key for moving to
the parent (bound to ',' by default).
Use menus with the commit subject to present selectable commit parents
Add simple support for showing menues and use it for showing option menu
The general goal is to have certain lesser used options not take up a
key for toggling.
The general goal is to have certain lesser used options not take up a
key for toggling.
Restore the branch view position after refreshing
Fix reloading of references to not cause access to freed memory
Make the allocation of refs stable across reloads (of either the main,
branch or log view) by changing the storage method and introducing a
struct ref_list to keep track of lists of references.
read_ref now always scans the already allocated refs. To speed this up
keep the list sorted and use binary search when inserting and updating.
Make the allocation of refs stable across reloads (of either the main,
branch or log view) by changing the storage method and introducing a
struct ref_list to keep track of lists of references.
read_ref now always scans the already allocated refs. To speed this up
keep the list sorted and use binary search when inserting and updating.
Predefined external command: git commit
Status view allows management of the stage area, and the user is likely
to issue a commit as soon as (s)he's satisfied with the result. Mapping
'git commit' to the 'C' key in status view makes this straightforward
and allows a very streamlined workflow from within git.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Status view allows management of the stage area, and the user is likely
to issue a commit as soon as (s)he's satisfied with the result. Mapping
'git commit' to the 'C' key in status view makes this straightforward
and allows a very streamlined workflow from within git.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fix previous/next with branch+main view
If the main view was opened as a child window of branch view, the
previous/next key would scroll the child window instead of the parent
one, which was not consistent with other dual-window situations.
Fix by checking for a branch+main too when delegating the request.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
If the main view was opened as a child window of branch view, the
previous/next key would scroll the child window instead of the parent
one, which was not consistent with other dual-window situations.
Fix by checking for a branch+main too when delegating the request.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add support for sorting branch entries by name, date and author
Add support for sorting tree entries by name, date or author
Branch view: fix loading to handle when two branches have same commit
Use temporary variable in refs loop in main_draw
Minor fix to always sort even if allocation fails in get_refs
Add primitive branch view
For now it let's you browse the branches and choose one to show in the
main view.
For now it let's you browse the branches and choose one to show in the
main view.
Add missing NULL in blame_grep
Commit 436674f introduced a grep_text utility function which
takes a NULL-terminated list; the callsite in blame_grep
forgot to put in a NULL, leading to segmentation faults.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Commit 436674f introduced a grep_text utility function which
takes a NULL-terminated list; the callsite in blame_grep
forgot to put in a NULL, leading to segmentation faults.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fix a potential problem with reading tokens larger then BUFSIZ
If io_get() is not able to find the end marker it will go into
an infinite loop. To fix this make it possible to reallocate and
increase the buffer if necessary.
To avoid problems with callers reading into a stack allocated buffer,
change these to no longer use the "zero-copy" strategy. This in turns
cleans the callers up a bit.
If io_get() is not able to find the end marker it will go into
an infinite loop. To fix this make it possible to reallocate and
increase the buffer if necessary.
To avoid problems with callers reading into a stack allocated buffer,
change these to no longer use the "zero-copy" strategy. This in turns
cleans the callers up a bit.
Update the current branch information when reloading all references
Fixes problem of improper highlighting of current branch after switching
branch and reloading.
Fixes problem of improper highlighting of current branch after switching
branch and reloading.
Define an allocator for run requests
Comparing the size of the binary before and after this change, shows
that the size does not increase when -02 is used.
Comparing the size of the binary before and after this change, shows
that the size does not increase when -02 is used.
Remove the need for alloc variables
Make the granular allocators more customizable using macros
Add a DEFINE_ALLOCATOR macro which can be used to define a custom
allocator which is more type safe than the current realloc_items and
which removed the need for using temporary variables for holding the
newly allocated chunk. The custom allocator also allows the allocation
granularity to be tweaked to the need of the user instead of being
hardcoded to 256 chunks for all.
Add a DEFINE_ALLOCATOR macro which can be used to define a custom
allocator which is more type safe than the current realloc_items and
which removed the need for using temporary variables for holding the
newly allocated chunk. The custom allocator also allows the allocation
granularity to be tweaked to the need of the user instead of being
hardcoded to 256 chunks for all.
Define a tree_grep and fixing searching
It was broken by the move to the annotated tree view.
It was broken by the move to the annotated tree view.
Simplify searching in view lines by defining grep_text utility
Reduce memory and startup time by storing author times as time_t
Which means that drawing will have to do some more formatting, however,
the startup time is shorter since gmtime_r() is no longer called. Same
repository as last commit.
18980 fonseca 20 0 17776 15m 872 S 0 0.8 0:01.26 tig
18630 fonseca 20 0 23224 20m 868 S 0 1.0 0:01.26 tig-0.14.1
Which means that drawing will have to do some more formatting, however,
the startup time is shorter since gmtime_r() is no longer called. Same
repository as last commit.
18980 fonseca 20 0 17776 15m 872 S 0 0.8 0:01.26 tig
18630 fonseca 20 0 23224 20m 868 S 0 1.0 0:01.26 tig-0.14.1
Add small cache for author names to reduce memory foot-print
Numbers from an old linux kernel repository with 2740 unique authors
shows that it takes a little longer time to start up but the gain is
quite good. Furthermore, it lifts the name length restriction.
18191 fonseca 20 0 19712 17m 872 S 3 0.8 0:01.34 tig
18180 fonseca 20 0 23224 20m 868 S 0 1.0 0:01.26 tig-0.14.1
Numbers from an old linux kernel repository with 2740 unique authors
shows that it takes a little longer time to start up but the gain is
quite good. Furthermore, it lifts the name length restriction.
18191 fonseca 20 0 19712 17m 872 S 3 0.8 0:01.34 tig
18180 fonseca 20 0 23224 20m 868 S 0 1.0 0:01.26 tig-0.14.1
tig-0.14.1
Remove unneeded doupdate from view_driver
Keep the cursor fixed while initial stage progress is reported
Fix draw_lineno to always set the static format buffer
Fix bug in draw_space to not access memory outside the space buffer
Refactor draw_lineno to use draw_graphic
Fix horizontal scrolling
... to not be limited to the view width and to account for
view->yoffset.
... to not be limited to the view width and to account for
view->yoffset.
Remove limitation of horizontal scrolling
Tig now behaves similar to less in that the user can scroll without
limit to the right.
Tig now behaves similar to less in that the user can scroll without
limit to the right.
tigrc(5): suggest git aliases for external commands requiring shell ops
Fix the view clearing to only be effective for displayed views
The feature was introduced in ec9aa4f62ae2977d598dda865e6a50b9fc799428.
The feature was introduced in ec9aa4f62ae2977d598dda865e6a50b9fc799428.
Make behavior of horizontal scrolling configurable
Requested by bill lam.
Requested by bill lam.
Fix handling of quoted strings in the config file
parse_string() adapts the string length to automatically remove quotation
marks when copying the string. However, when calling string_ncopy_do()
strlen(arg) used to be called again instead of using the adapted value.
This e.g. led to wrong locale settings when using
set commit-encoding = "UTF-8"
and thus a slightly messed up display.
Thanks to Gerfried Fuchs for reporting this.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
parse_string() adapts the string length to automatically remove quotation
marks when copying the string. However, when calling string_ncopy_do()
strlen(arg) used to be called again instead of using the adapted value.
This e.g. led to wrong locale settings when using
set commit-encoding = "UTF-8"
and thus a slightly messed up display.
Thanks to Gerfried Fuchs for reporting this.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
tigrc(5): fix error in examples for the set command
Fixes Debian bug #514990 reported by Gerfried Fuchs.
Fixes Debian bug #514990 reported by Gerfried Fuchs.
Tree view: draw submodule entry modes as "m---------"
Inspired by gitweb.
Inspired by gitweb.
Status view: report failures to update a file
Also, wait showing update progress until 5% has been reached.
Also, wait showing update progress until 5% has been reached.
Ignore broken pipe signals
Can be caused if a forked git process exits with an error. Tig should
detect this by checking the exit code of the child using the return
value done_io().
Can be caused if a forked git process exits with an error. Tig should
detect this by checking the exit code of the child using the return
value done_io().
Use putenv instead of setenv
Not all platforms (e.g. Solaris) provide setenv. Based on patch by
SungHyun Nam.
Not all platforms (e.g. Solaris) provide setenv. Based on patch by
SungHyun Nam.
manual: Correct the keys to move the cursor one line up/down
Signed-off-by: Carsten Brockmann <cabro@gmx.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Carsten Brockmann <cabro@gmx.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Status view: upon failure to open a file show error message
Refactor and share view maximization code from view-close handling
Fix io_strerror return type
Add support for handling core.worktree
If this option is found set up GIT_DIR and GIT_WORK_TREE. Also, pass
the known git directory path to git ls-remote.
Requested-by: bill lam
If this option is found set up GIT_DIR and GIT_WORK_TREE. Also, pass
the known git directory path to git ls-remote.
Requested-by: bill lam
Optimize read_repo_config_option to reduce string comparisons
Move setting of remote branch from repo config to separate function
Mark enum_maps and other data tables as const
Use check_blame_commit when handling REQ_ENTER
NEWS: Mention Jeff's uninitialized variable bug fix
From commit 2677b744313c939890a8f6b3316f9d5452581ab8.
From commit 2677b744313c939890a8f6b3316f9d5452581ab8.
Handle blaming beyond the creation of file more gracefully
Currently when you ask to re-blame from the parent of a
commit that created the file, blame_read_file will complain
that it cannot get the file contents ("No blame exist").
At the time we try to read the file, it is too late to abort
the operation, as we have already changed to the new blame
view. However, we can detect this situation early by
limiting the selection of the parent revision to the
particular path of interest: if it returns a parent even
with path-limiting, then we know the path exists; if not,
then we know it doesn't.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Currently when you ask to re-blame from the parent of a
commit that created the file, blame_read_file will complain
that it cannot get the file contents ("No blame exist").
At the time we try to read the file, it is too late to abort
the operation, as we have already changed to the new blame
view. However, we can detect this situation early by
limiting the selection of the parent revision to the
particular path of interest: if it returns a parent even
with path-limiting, then we know the path exists; if not,
then we know it doesn't.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Blame view: add guesstimation of line number when blaming parent commit
... by looking through the commit's diff for the hunk which introduced
the line. Also, try to set the filename properly.
... by looking through the commit's diff for the hunk which introduced
the line. Also, try to set the filename properly.
Use file and line number information when loading blame for commit
This was developed in parallel and is very similar to patch posted by
Jeff King, however, with different goals in mind.
Message-Id: <20090207112613.GA18079@coredump.intra.peff.net>
This was developed in parallel and is very similar to patch posted by
Jeff King, however, with different goals in mind.
Message-Id: <20090207112613.GA18079@coredump.intra.peff.net>
Make the blame view expand tabs at drawing time
Introduce common view position update helper
So jumping to search results and line numbers will work more uniform.
So jumping to search results and line numbers will work more uniform.
Improve restoring of the view position to bound the offset
Jump to line when a number is entered in the prompt
Warn users about integers in ~/.tigrc being out of bound
Fix uninitialized variable in string_expand_length
This led to totally unpredictable results from the function. The style
matches the loop in string_expand.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
This led to totally unpredictable results from the function. The style
matches the loop in string_expand.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add support for 256 colors by allowing "colorN" names similar to Mutt
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Improve on branch information in the status view
The file checks was inspired by the prompt code from the git bash
completion script.
The file checks was inspired by the prompt code from the git bash
completion script.
Simplify setting the default for the system configuration file
Refactor and unify timezone parsing
Remove the need for the OPEN_NOMAXIMIZE flag
It was only used for the status view together with the OPEN_RELOAD flag.
However, since reloading and refreshing is the same for the status use
OPEN_REFRESH instead.
It was only used for the status view together with the OPEN_RELOAD flag.
However, since reloading and refreshing is the same for the status use
OPEN_REFRESH instead.
Remove unused OPEN_BACKGROUNDED flag
Use enum_map for handling obsolete color names
Use enum_map for handling obsolete request names
Refactor the int_map interface into new enum_map interface
Renames int_map to enum_map and set_from_int_map to map_enum, which
now uses string_enum_compare instead of strncasecmp.
Renames int_map to enum_map and set_from_int_map to map_enum, which
now uses string_enum_compare instead of strncasecmp.
Cleanup and simplify option file parsing
tig-0.14
Read tigrc(5) options from git configuration files
tig(1): correct info on tree view related environment variables
Was not updated during the introduction of %(directory) and move to the
IO API.
Was not updated during the introduction of %(directory) and move to the
IO API.
Add release script documenting the release procedure
Spell check all text files and add dictionary to speed it up
tigrc(5): document the tree view colors
Also renames the tree-parent line to tree-head.
Also renames the tree-parent line to tree-head.
Refactor file mode drawing; rename tree-mode color to mode
Replace usage of the main-author color with the author color
It is used in draw_author() which is used by the main, blame and tree
views.
It is used in draw_author() which is used by the main, blame and tree
views.
Move usage string near parse_options
Tree view: improve handling of empty trees
Fix reverting of unmerged status entries
... by using update-index --cacheinfo.
... by using update-index --cacheinfo.
Add support for horizontal scrolling
It is still basically a big hack, and might need some tuning.
It is still basically a big hack, and might need some tuning.
Expand tabs in displayed lines to not rely on ncurses to expand them
Treat empty '/' as "find next"
When the user requests a forward or backwards search, if
they provide no search string then we just abort the search.
However, many other programs (such as less and vi) treat
this as "repeat the last search", so users may have their
fingers trained to do this rather than use the explicit
"find next" feature.
This patch causes tig, if there was a previous search, to
find the next (or previous, if "?" was used) match in such a
case.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
When the user requests a forward or backwards search, if
they provide no search string then we just abort the search.
However, many other programs (such as less and vi) treat
this as "repeat the last search", so users may have their
fingers trained to do this rather than use the explicit
"find next" feature.
This patch causes tig, if there was a previous search, to
find the next (or previous, if "?" was used) match in such a
case.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
TODO: elaborate and regroup into 'before tig-1.0' and 'long term goals'
Move initial view setup into parse_options