Re: [tig] [PATCHv2 3/3] log: Colour the diff stat
On Sun, Apr 13, 2014 at 5:54 PM, Kumar Appaiah a.ku...@alumni.iitm.ac.in wrote: This commit adds custom log_read and log_draw functions that utilize the diff stat drawing functions from the diff module. The absence of the triple hyphen separator prevents direct usage of the diff drawing functions directly. See my comments below. --- src/log.c | 55 +-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/src/log.c b/src/log.c index 40c9a21..468f7c3 100644 --- a/src/log.c +++ b/src/log.c @@ -23,6 +23,9 @@ struct log_state { * up/down in the log view. */ int last_lineno; enum line_type last_type; + bool commit_title_read; + bool after_commit_header; + bool reading_diff_stat; }; static void @@ -78,14 +81,62 @@ log_request(struct view *view, enum request request, struct line *line) } } +static bool +log_read(struct view *view, char *data) +{ + enum line_type type; + struct log_state *state = view-private; + size_t len; + + if (!data) + return TRUE; + + type = get_line_type(data); + len = strlen(data); + + if (type == LINE_COMMIT) + state-commit_title_read = TRUE; + else if (state-commit_title_read len 1) { + state-commit_title_read = FALSE; + state-after_commit_header = TRUE; + } else if (state-after_commit_header len 1) { + state-after_commit_header = FALSE; + state-reading_diff_stat = TRUE; + } else if (state-reading_diff_stat) { + bool ret = diff_common_add_diff_stat(view, data); + if (ret) { + return TRUE; + } else { + state-reading_diff_stat = FALSE; + } + } + + return pager_common_read(view, data, type); +} + +static bool +log_draw(struct view *view, struct line *line, unsigned int lineno) +{ + char *text = line-data; + enum line_type type = line-type; + This is missing a call to draw_lineno(...) + if (type == LINE_DIFF_STAT) { + diff_common_draw_diff_stat(view, type, text); + draw_text(view, type, text); I had to #include tig/draw.h for this to compile. + return TRUE; + } + + return pager_draw(view, line, lineno); +} + static struct view_ops log_ops = { line, argv_env.head, VIEW_ADD_PAGER_REFS | VIEW_OPEN_DIFF | VIEW_SEND_CHILD_ENTER | VIEW_LOG_LIKE | VIEW_REFRESH, sizeof(struct log_state), log_open, - pager_read, - pager_draw, + log_read, + log_draw, log_request, pager_grep, log_select, -- 1.9.1 -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [tig] [PATCHv2 0/3] log: colour the diffstat
Hi Kumar, On Sun, Apr 13, 2014 at 5:54 PM, Kumar Appaiah a.ku...@alumni.iitm.ac.in wrote: These patches add colourization to the log view. They reuse the diff stat drawing functions from the diff module directly. This is a great idea. I wonder though if it would make sense to put this into the pager backend instead so all pager based views can benefit unless of course the state machine would end up becoming too complicated. This version just includes some code reformatting and minor fixes. Please comment on what other fixes could help. See my other email regarding fixes. Since I am currently refactoring how views are drawn I'd prefer to postpone merging this patchset until the dust has settled. I'll try to rebase the patches once I get there before reaching out to you. -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.0
+ ...allel_branches_with_different_middle_branch.out | 10 + test/test-graph-samples/14_long_collapse_line.in | 40 + test/test-graph-samples/14_long_collapse_line.out | 20 + test/test-graph-samples/16_changes.in |8 + test/test-graph-samples/16_changes.out |4 + test/test-graph-samples/1_merge_from_left.in | 10 + test/test-graph-samples/1_merge_from_left.out |5 + test/test-graph-samples/2_duplicate_parent.in | 18 + test/test-graph-samples/2_duplicate_parent.out |9 + test/test-graph-samples/3_octo_merge.in| 10 + test/test-graph-samples/3_octo_merge.out |5 + test/test-graph-samples/4_missing_bar.in | 14 + test/test-graph-samples/4_missing_bar.out |7 + test/test-graph-samples/5_extra_pipe.in| 12 + test/test-graph-samples/5_extra_pipe.out |6 + test/test-graph-samples/6_extra_bars.in| 115 + test/test-graph-samples/6_extra_bars.out | 57 + test/test-graph-samples/7_multi_collapse.in| 16 + test/test-graph-samples/7_multi_collapse.out |8 + test/test-graph-samples/8_multi_collapse_2.in | 18 + test/test-graph-samples/8_multi_collapse_2.out |9 + test/test-graph-samples/9_parallel_siblings.in | 18 + test/test-graph-samples/9_parallel_siblings.out|9 + test/test-graph-samples/many_merges.in | 65 + test/test-graph-samples/many_merges.out| 20 + test/test-graph-samples/more.in| 72 + test/test-graph-samples/more.out | 36 + test/test-graph-samples/simple.in | 22 + test/test-graph-samples/simple.out |6 + test/test-graph-samples/tig-all-long.in|14986 test/test-graph-samples/tig-all-long.out | 1517 ++ test/test-graph-samples/tig-all.in | 286 + test/test-graph-samples/tig-all.out| 35 + test/test-graph-samples/tig.in | 28 + test/test-graph-samples/tig.out|8 + test-graph.c = test/test-graph.c | 23 +- test/unit-test-graph.sh| 19 + tig.c | 9043 --- tig.h | 622 - tigrc | 386 + {contrib = tools}/announcement.sh |8 +- {contrib = tools}/aspell.dict | 16 +- tools/ax_lib_readline.m4 | 223 + {contrib = tools}/ax_with_curses.m4 |0 tools/doc-gen.c| 84 + {contrib = tools}/header.h|2 +- tools/install.sh | 49 + tools/make-builtin-config.sh | 40 + {contrib = tools}/release.sh | 11 +- {contrib = tools}/update-release-docs.sh |2 +- 154 files changed, 38086 insertions(+), 11640 deletions(-) 1 Andreas Schlick 1 Beat Bolli 1 Benjamin Bergman 1 Ciro Santilli 1 Dmitry Malikov 1 Ed Bruck 3 Jeff King 399 Jonas Fonseca 3 Kumar Appaiah 1 LCD 47 1 Lau Ching Jun 1 Michael Barlow 1 Oliver Chang 1 Pat Tullmann 4 Sven Wegener 3 Vivien Didelot 1 hasufell -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.0.1
Here's a small bugfix release to fix some *blush* last minute changes. Release notes - Bug fixes: - Fix compilation in watch.c. - Fix parsing of key bindings mapped to '^' and ''. (GH #280, #282) Change summary -- The diffstat and log summary for changes made in this release. Makefile| 2 +- NEWS.adoc | 8 src/keys.c | 10 -- src/watch.c | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) Avinash (1): Prevent throwing errors if single '^'(circumflex) is used in config Jeff King (1): Fix compilation error in watch.c Jonas Fonseca (2): Improve pretty printing of ',' in the help view tig-2.0.1 Yasuharu Ozaki (1): fix LessThan binding support -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.0.2
Here's another bug fix release that addresses an issue with loading the refs, main and grep views when gui.encoding was set, a build failure on OS X 10.6 as well as a few other bugs reported since 2.0.1. What is Tig? Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands. 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 - Gitweb: http://repo.or.cz/w/tig.git - QA: http://stackoverflow.com/questions/tagged/tig Release notes - Improvements: - Use git-status for diffing the index. - Group toggle options together in the help view. Bug fixes: - Fix refs, main and grep loading when 'gui.encoding' is set. (GH #287) - Ignore 'gui.encoding' and 'i18n.commitencoding' when set to 'UTF-8'. - Add work-around for missing strndup() on Mac OS X v10.6. (GH #286) - Fix spurious abbreviation of author names. (GH #288) - Don't show empty action groups in the help view. Change summary -- The diffstat and log summary for changes made in this release. Makefile| 7 - NEWS.adoc | 16 ++ compat/compat.h | 6 compat/strndup.c| 54 + config.make.in | 1 + configure.ac| 1 + doc/tigrc.5.adoc| 67 +--- include/tig/io.h| 11 +-- include/tig/main.h | 2 +- include/tig/pager.h | 2 +- include/tig/repo.h | 9 -- include/tig/view.h | 2 +- src/argv.c | 8 ++--- src/blame.c | 27 + src/blob.c | 6 ++-- src/diff.c | 14 - src/draw.c | 4 +-- src/grep.c | 12 src/help.c | 20 src/io.c| 74 + src/keys.c | 33 src/log.c | 6 ++-- src/main.c | 18 ++- src/options.c | 4 ++- src/pager.c | 6 ++-- src/prompt.c| 4 ++- src/refs.c | 12 src/repo.c | 46 +--- src/stage.c | 10 +++--- src/status.c| 16 +- src/tree.c | 22 +++--- src/view.c | 17 ++- src/watch.c | 7 +++-- test/test-graph.c | 6 ++-- tools/aspell.dict | 12 tools/release.sh| 2 +- 36 files changed, 354 insertions(+), 210 deletions(-) Jonas Fonseca (16): Fix auto-abbreviation of author names Improve display of commas and spaces in the help view Rewrite index diffing to use git-status Group option toggle bindings together in the help view Never show any actions for a hidden keymap Fix infinite loop when parsing view columns Use buffer when reading data using io_get() Use buffer for reading view data Ignore 'gui.encoding' and 'i18n.commitencoding' when set to 'UTF-8' Only use the delimiter character for trimmed and unscrollable text Improve warning for obsolete view UI options Improve documentation of view settings in tigrc(5) Move cursor to the first line when :0 is entered Fix documentation of author width option Fix release script to work for patch versions tig-2.0.2 Vivien Didelot (2): compat: add proper work-around for missing strndup argv: revert part of a3079e2 -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.0.3
- test/test-graph-samples/more.in |72 - test/test-graph-samples/simple.out| 6 - test/test-graph-samples/tig-all-long.in | 14986 test/test-graph-samples/tig-all.out |35 - test/test-graph-samples/tig.out | 8 - test/tigrc/builtin-error-test |12 + test/tigrc/compat-error-test | 125 + test/tigrc/env-vars-test |39 + test/tigrc/parse-test | 125 + test/tigrc/tigrc-manpage-examples-test|49 + test/tools/libgit.sh | 242 + test/tools/libtest.sh | 228 + test/tools/setup-conflict.sh |22 + test/tools/show-results.sh|34 + test/{ = tools}/test-graph.c |36 +- test/tree/default-test| 165 + test/unit-test-graph.sh |19 - tigrc |12 +- tools/aspell.dict |11 +- tools/install.sh | 2 +- tools/release.sh | 7 +- 133 files changed, 5456 insertions(+), 16004 deletions(-) 1 Alexander Myltsev 3 John Keeping 64 Jonas Fonseca 1 Olof-Joachim Frahm 1 Sven Wegener 2 Vivien Didelot 1 hamaco -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: tig: Improving startup time and interactivity
On Tue, Nov 11, 2014 at 3:50 AM, Dominik Vogt v...@linux.vnet.ibm.com wrote: Hi Jonas, HI Dominik, Good to hear from you. working on a relatively old machine with a crypted disk, there are really two performance problems with tig on large repos like gcc or the Linux kernel. I wonder what would be necessary to improve these two problems: 1) Firing up tig for the first time in the kernel repo, the screen goes blank for about a minute. After that it comes up quickly. This is probably caused by decrypting lots of on-disk-objects. You are not alone at reporting this problem. The main reason is that when the revision graph is enabled, tig automatically passes --topo-order to git-log. This commit order seems to cause quite a slow down before the first commits are available in the output in the Linux kernel repo, I assume, due to its many merges. I recently added an option to disable the automatic forcing of topological commit order. So assuming you are using tig from current master, you can do this using `set main-view-commit-title-graph = no-topo`, but I will probably move this setting to another option before the next release (so if it breaks take a look at the NEWS file). Alternatively you can disable the revision graph completely using `set main-view-commit-title-graph = no`. Before the next commit I plan to also investigate whether tig can first load a screen full of commits without --topo-order and then restart git-log, so the main view has content faster. 2) When I cherry pick commits inside tig, it reloads the whole commit history of the active branch before tig accepts new commands. This should should be able to disable this behaviour using `set refresh-mode = manual` if you don't want tig to automatically reload the view. I guess both issues are caused by tig reading the whole commit history before user input is allowed. Is there a way to do that in the background, or interrupt loading when the user presses a key, or to load the history in small chunks? The loading should already happen while also accepting user input (modulo any bugs). After all, you're usually interested only in the last 100 commits or so, and there's no need to block the UI while loading the rest. True. Well, The only part of the loading that is blocking is the .git/index refreshing that takes place when display of work tree changes is enabled in the main view (when `set show-changes = yes`). I will review this again. Could you point me to the right source file? I'm not used to the sources split into multiple files yet. :-) Try: tig grep main_open Ciao Have a great day. -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] TIG: Fix to reinstate proper operation with no arguments
On Thu, Jul 18, 2013 at 9:30 AM, Drew Northup n1xim.em...@gmail.com wrote: Somehow this patch breaks the main view to not open the correct commit in diff view when enter is pressed. Back to the debugger... Does this (possibly white-space damaged) patch work for you? diff --git a/tig.c b/tig.c index ba9ba98..74a2928 100644 --- a/tig.c +++ b/tig.c @@ -3104,7 +3104,7 @@ format_expand_arg(struct format_context *format, const char *name) static bool format_append_arg(struct format_context *format, const char ***dst_argv, const char *arg) { - format-bufpos = 0; + format-buf[0] = format-bufpos = 0; while (arg) { char *next = strstr(arg, %(); -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH V2] TIG: Fix to reinstate proper operation with no arguments
On Wed, Jul 24, 2013 at 8:50 AM, Drew Northup n1xim.em...@gmail.com wrote: This time, knowing for sure now that format-buf is not being used in the extant code path for any other purpose, I went ahead and initialized the whole thing to be sure that we don't find any other ghosts hiding in that buffer between uses. Just initializing the first byte fixes the near term problem but does not prevent the buffer initialization issue that this bug highlighted from rising up again later on. Thanks applied with minor tidyup. diff --git a/tig.c b/tig.c index ba9ba98..c65bc43 100644 --- a/tig.c +++ b/tig.c @@ -3104,8 +3104,12 @@ format_expand_arg(struct format_context *format, const char *name) static bool format_append_arg(struct format_context *format, const char ***dst_argv, const char *arg) { + int i; Added space after the declaration. format-bufpos = 0; + for (i = 0; i SIZEOF_STR; i++) Changed this to use sizeof(format-buf) instead. + format-buf[i] = 0; + while (arg) { char *next = strstr(arg, %(); int len = next ? next - arg : strlen(arg); -- 1.8.0 -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [TIG][PATCH] Scroll diff with arrow keys in log view
On Wed, Jul 31, 2013 at 11:11 PM, Kumar Appaiah a.ku...@alumni.iitm.ac.in wrote: This commit introduces the VIEW_NO_PARENT_NAV flag and adds it to the log view. This allows the scrolling commands to fall through from the pager to the diff when the diff is viewed in the log mode. Thanks, works like a charm. BTW, please remember to label tig related patches by adding '[TIG]' or something similar in the subject so people on this list won't get confused. -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [[TIG][PATCH] 1/3] Add log_select function to find commit from context in log view
On Fri, Aug 2, 2013 at 8:23 PM, Kumar Appaiah a.ku...@alumni.iitm.ac.in wrote: This commit introduces and uses the log_select function to find the correct commit in the unsplit log view. In the log view, if one scrolls down across a commit line, the current commit (as displayed in the status bar) gets updated, but not so when scrolling upward across a commit. The log_select function handles this scenario to to the s/to to/to do/ ``right thing''. In addition, it introduces the log_state structure as the private entry of the log view to hold a flag that decides whether to re-evaluate the current commit based on scrolling. Signed-off-by: Kumar Appaiah a.ku...@alumni.iitm.ac.in --- tig.c | 50 -- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/tig.c b/tig.c index 72f132a..dd4b0f4 100644 --- a/tig.c +++ b/tig.c @@ -4384,6 +4384,33 @@ pager_select(struct view *view, struct line *line) } } +struct log_state { + bool update_commit_ref; +}; + +static void +log_select(struct view *view, struct line *line) +{ + struct log_state *state = (struct log_state *) view-private; + + if (state-update_commit_ref line-lineno 1) { + /* We need to recalculate the previous commit, + since the user has likely scrolled up. */ I'd prefer that state-update_commit_ref is given another name so it won't be necessary to have these comments everywhere the field is used, for example recalculate_commit_context. The comment could be moved to the declaration in struct log_state to explain its use. Multi-line comments should start with '*' for each additonal line, e.g. /* bla bla * bla bla */ + const struct line *commit_line = find_prev_line_by_type(view, line, LINE_COMMIT); + + if (commit_line) + string_copy_rev(view-ref, (char *) (commit_line-data + STRING_SIZE(commit ))); You mentioned elsewhere that this looked funny, and I guess you are right. I will extract this into a utility method so you can simply call: string_copy_rev_from_line(view-ref, commit_line); ... + } + if (line-type == LINE_COMMIT) { + char *text = (char *)line-data + STRING_SIZE(commit ); + + if (!view_has_flags(view, VIEW_NO_REF)) + string_copy_rev(view-ref, text); ... and: string_copy_rev_from_line(view-ref, line); + } + string_copy_rev(ref_commit, view-ref); + state-update_commit_ref = FALSE; +} + static bool pager_open(struct view *view, enum open_flags flags) { @@ -4427,11 +4454,30 @@ log_open(struct view *view, enum open_flags flags) static enum request log_request(struct view *view, enum request request, struct line *line) { + struct log_state *state = (struct log_state *) view-private; There's no need to cast view-private here. + switch (request) { case REQ_REFRESH: load_refs(); refresh_view(view); return REQ_NONE; + + case REQ_MOVE_UP: + case REQ_PREVIOUS: + if (line-type == LINE_COMMIT line-lineno 1) { + /* We are at a commit, and heading upward. We + force log_select to find the previous + commit above, from the context. */ Please delete this comment. + state-update_commit_ref = TRUE; + } + return pager_request(view, request, line); There's not really any reason to call pager_request here, since it only handles REQ_ENTER. + + case REQ_MOVE_PAGE_UP: + case REQ_MOVE_PAGE_DOWN: + /* We need to figure out the right commit again. */ Please delete this this comment. + state-update_commit_ref = TRUE; + return pager_request(view, request, line); Calling pager_request again. + default: return pager_request(view, request, line); } @@ -4441,13 +4487,13 @@ static struct view_ops log_ops = { line, { log }, VIEW_ADD_PAGER_REFS | VIEW_OPEN_DIFF | VIEW_SEND_CHILD_ENTER | VIEW_NO_PARENT_NAV, - 0, + sizeof(struct log_state), log_open, pager_read, pager_draw, log_request, pager_grep, - pager_select, + log_select, }; struct diff_state { -- 1.8.3.2 -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [[TIG][PATCH] 2/3] Display correct diff the context in split log view
On Fri, Aug 2, 2013 at 8:23 PM, Kumar Appaiah a.ku...@alumni.iitm.ac.in wrote: In the log view, when scrolling across a commit, the diff view should automatically switch to the commit whose context the cursor is on in the log view. This commit changes things to catch the REQ_ENTER in the log view and handle recalculation of the commit and diff display from log_request, rather than delegating it to pager_request. In addition, it also gets rid of unexpected upward scrolling of the log view. Fixes GH #155 Signed-Off-By: Kumar Appaiah a.ku...@alumni.iitm.ac.in --- NEWS | 1 + tig.c | 12 2 files changed, 13 insertions(+) diff --git a/NEWS b/NEWS index 0394407..f59e517 100644 --- a/NEWS +++ b/NEWS @@ -46,6 +46,7 @@ Bug fixes: - Fix rendering glitch for branch names. - Do not apply diff styling to untracked files in the stage view. (GH #153) - Fix tree indentation for entries containing combining characters. (GH #170) + - Introduce a more natural context-sensitive log display. (GH #155) tig-1.1 --- diff --git a/tig.c b/tig.c index dd4b0f4..53947b7 100644 --- a/tig.c +++ b/tig.c @@ -4478,6 +4478,18 @@ log_request(struct view *view, enum request request, struct line *line) state-update_commit_ref = TRUE; return pager_request(view, request, line); + case REQ_ENTER: + /* Recalculate the correct commit for the context. */ See my dislike for this type of comments. ;) + state-update_commit_ref = TRUE; + + open_view(view, REQ_VIEW_DIFF, OPEN_SPLIT); This is called every time the user presses up/down. There should be a check that compares the VIEW(REQ_VIEW_DIFF)-ref to ref_commit. + update_view_title(view); This can be deleted. pager_request require this hack due to the automatic scrolling (if I recall correctly). + + /* We don't want to delegate this to pager_request, + since we don't want the extra scrolling of the log + view. */ This explanation should IMO go into the commit message and not a comment since it is somewhat confusing unless you are familiar with the previous behaviour. + return REQ_NONE; + default: return pager_request(view, request, line); This line can be changed to `return request;` } -- 1.8.3.2 -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [[TIG][PATCH] 1/3] Add log_select function to find commit from context in log view
On Fri, Aug 2, 2013 at 8:23 PM, Kumar Appaiah a.ku...@alumni.iitm.ac.in wrote: diff --git a/tig.c b/tig.c index 72f132a..dd4b0f4 100644 --- a/tig.c +++ b/tig.c @@ -4427,11 +4454,30 @@ log_open(struct view *view, enum open_flags flags) static enum request log_request(struct view *view, enum request request, struct line *line) { + struct log_state *state = (struct log_state *) view-private; + switch (request) { case REQ_REFRESH: load_refs(); refresh_view(view); return REQ_NONE; + + case REQ_MOVE_UP: + case REQ_PREVIOUS: + if (line-type == LINE_COMMIT line-lineno 1) { + /* We are at a commit, and heading upward. We + force log_select to find the previous + commit above, from the context. */ + state-update_commit_ref = TRUE; + } + return pager_request(view, request, line); + + case REQ_MOVE_PAGE_UP: + case REQ_MOVE_PAGE_DOWN: + /* We need to figure out the right commit again. */ + state-update_commit_ref = TRUE; + return pager_request(view, request, line); + default: return pager_request(view, request, line); } I forgot to mention there is one use case this doesn't currently handle, namely jumping to a specific line using ':number'. Other than detecting this by tracking the current line number in log_state I haven't come up with a good way to detect that a recalculation is required. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [TIG][PATCH 0/3] Refactoring of the log view
On Fri, Aug 2, 2013 at 8:23 PM, Kumar Appaiah a.ku...@alumni.iitm.ac.in wrote: These set of patches refactor the log view to provide a behaviour that is quite similar to, say, e-mail with Mutt. The key improvements are: - The current commit is inferred based on the context. For example, if you focus on the commit message of a particular commit, the correct commit is inferred automagically. - Scrolling the log view when the diff is open shows the correct commit on the screen, rather than have to scroll up and cross the commit line to display the screen. Thanks, great improvements. I am still considering whether to queue them until after the next release or include them. I have decided to revert 888611dd5d407775245d574a3dc5c01b5963a5ba, since the behaviour with the updated scrolling pattern is much more consistent. OK, makes sense. The next step will be to find out how to highlight the diff stat in the log view. :-D -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-1.2
Hello, It's been almost a year since the last release of tig, so here is a much needed update. It brings a lot of cool new features, such as the ability to jump directly from diff to the corresponding line in the changed file, a stash view, improvements to the log view, plus a bunch of bug fixes. On behalf of everyone who contributed to this release, please enjoy. What is tig? Tig is an ncurses-based text-mode interface for git. It functions mainly as a git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various git commands. - 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 - Gitweb: http://repo.or.cz/w/tig.git - QA: http://stackoverflow.com/questions/tagged/tig Release notes - - Tig now has its own tag on Stack Overflow, where users are invited to ask questions: http://stackoverflow.com/questions/tagged/tig Improvements: - Make tig prompt commands bindable to keys. For example: `bind diff F :set diff-options = --full-diff`. (GH #69, #116) - Add a diff-options setting for specifying default diff options. Example: `set diff-options = --patience`. (GH #116) - Options in diff-options and blame-options matching tig browsing state variables are replaced. - Show diff stats as wide as the terminal. (GH #109) - Show line numbers in the branch view. (GH #135) - Add toggles for showing author email or email user names. (GH #115) - Open editor at the selected line by prefixing the file argument with `+lineno`. Tested in vi, vim, emacs, nano, gedit, geany. Disable by adding `set editor-line-number = no` to ~/.tigrc. (GH #118, #119) - Add toggle-files to control whether to show full commit diff or only the diff concerning the currently selected file, e.g. for blame. - Optionally highlight exceeding characters in long commit titles. The default title max width is 50 characters. Customize using: `set title-overflow = 50` (GH #125) - Add +ESC key bindings. Example: `bind generic ^[v move-page-up` (GH #120) - Create temporary files in TMPDIR, TEMP, or TMP before defaulting to /tmp. - Reenable `tig log` as a subcommand. (GH #146) - Enable tilde expansion in ~/.tigrc source commands. (GH #168) - Introduce the stash view, bound to the 'y' keybinding. (GH #169, #174) Bug fixes: - Fix blame and status to work in directories starting with a dot. (GH #172) - Reload current branch name when reloading the status view. (GH #93) - Fix compile errors on old Solaris. (GH #97) - Reload HEAD info when reloading the stage view. (GH #104, #93) - Fix disappearing branch labels after external commands. (GH #148) - Fix diff view display for staged/unstaged changes when using 'd'. - Fix display of status messages when toggling view options. (GH #111) - Fix illegal memory access. (GH #98) - Fix display of all branches label in repos with short branch names. - Fix rendering glitch for branch names. - Do not apply diff styling to untracked files in the stage view. (GH #153) - Fix tree indentation for entries containing combining characters. (GH #170) - Ignore unrepresentable characters when transliterating text for rendering. - Transliterate text to output encoding before trimming it to avoid misalignment. (GH #86) - Introduce a more natural context-sensitive log display. (GH #155) Change summary -- The diffstat and log summary for changes made in this release. BUGS|3 +- Makefile| 32 +- NEWS| 51 ++ SITES |1 + autogen.sh |2 +- compat/compat.h | 44 ++ compat/mkstemps.c | 152 + compat/setenv.c | 186 ++ config.make.in |4 + configure.ac| 13 +- contrib/aspell.dict |3 +- contrib/config.make-Darwin |1 + contrib/header.h| 12 + contrib/tig-completion.bash |2 +- contrib/tig.spec.in |4 + git.h |4 +- graph.c | 10 +- graph.h |5 +- io.c| 42 +- io.h|7 +- manual.txt | 34 +- refs.c | 12 +- refs.h |5 +- test-graph.c| 24 +- tig.1.txt | 18 +- tig.c | 1124 +-- tig.h | 32 +- tigrc.5.txt | 69 ++- 28 files changed, 1509 insertions(+), 387 deletions(-) 1 Aaron Franks 1 Beat Bolli 1 Dominik Vogt 2 Drew Northup 3 IWASAKI Yudai 1 Joakim Sernbrant 61 Jonas Fonseca 1 Julian Langschaedel 4
[ANNOUNCE] tig-1.2.1
Hello, Due to a bug in the handling of submodules, here is a new release of Tig. In addition to the bug fix, this new version reduces memory usage and startup time of the main view and shows the blob size in the tree view. Note to packagers: the manual and manpage documentation files now live inside the doc/ directory and and have .asciidoc as the extension. The SITES file has been removed as its content has been merged into README. What is Tig? Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands. 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 - Gitweb: http://repo.or.cz/w/tig.git - QA: http://stackoverflow.com/questions/tagged/tig Release notes - Incompatibilities: - Move manual and man pages to doc/ directory and rename AsciiDoc files to have .asciidoc as the extension to make them render on GitHub. Improvements: - Show blob sizes in the tree view either as bytes or using binary unit prefixes. Example: `set show-file-size = units`. (GH #163) - Reduce main view memory usage and startup time, especially when revision graph rendering is disabled. (GH #160) Bug fixes: - Fix submodule-related setup to check for non-zero return value from setenv(). (GH #188) Change summary -- The diffstat and log summary for changes made in this release. .gitignore | 18 +- BUGS |4 +- INSTALL| 92 +++-- Makefile | 76 ++-- NEWS | 62 ++- README | 28 +- SITES |7 - asciidoc.conf | 65 --- contrib/announcement.sh| 11 +- contrib/aspell.dict| 18 +- contrib/config.make| 16 + contrib/config.make-Darwin |5 + contrib/tig.spec.in|6 +- contrib/update-release-docs.sh |6 +- doc/asciidoc.conf | 65 +++ doc/manual.asciidoc| 606 + doc/tig.1.asciidoc | 195 doc/tigmanual.7.asciidoc | 20 + doc/tigrc.5.asciidoc | 757 manual.txt | 604 - tig.1.txt | 176 tig.c | 333 +++ tigmanual.7.txt| 20 - tigrc.5.txt| 736 --- 24 files changed, 2119 insertions(+), 1807 deletions(-) Dan Church (1): Fix man page install Jonas Fonseca (19): Move documentation to doc directory Rework README to include the list of online resources Fix submodule-related setup to properly check setenv return value Fix path to sysconfdir-based gitconfig in tig(1) Fix HTML doc installation Ignore *.swp files and restrict to only ignore top-level config.make Add work-around for building manpages with Homebrew-based xmlto Improve the installation instructions Show blob sizes in the tree view Ignore generated HTML files in the whole tree Dynamically allocate commit titles to reduce memory usage Postpone ref list lookup to the draw phase Bypass all graph calls and memory allocations when the graph is disabled Free graph symbols when reloading the main view Remove the dont_free line struct flag in favor of custom help_done Fix regression that skipped commits with no messages Simplify the install goal and rename $(PROGS) to $(EXE) Use capitalized Git and Tig when talking about the systems in general tig-1.2.1 -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: diff/merge tool that ignores whitespace changes
On Sun, Sep 2, 2012 at 5:07 PM, Enrico Weigelt enrico.weig...@vnc.biz wrote: Hi, Would that help ? git help diff [snip] --ignore-space-at-eol Ignore changes in whitespace at EOL. -b, --ignore-space-change Ignore changes in amount of whitespace. This ignores whitespace at line end, and considers all other sequences of one or more whitespace characters to be equivalent. -w, --ignore-all-space Ignore whitespace when comparing lines. This ignores differences even if one line has whitespace where the other line has none. Now I yet need to find out how to configure tig for it. Try: echo set ignore-space = all ~/.tigrc And use 'W' to toggle between the different modes. -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [ANNOUNCE] tig-1.0
On Fri, Sep 7, 2012 at 9:41 AM, Jean-Baptiste Quenot j...@caraldi.com wrote: Hi Jonas, Hello Jean-Baptiste With tig 1.0 how to feed specific revisions to the main view? The following hack worked until tig 0.17: [alias] tignowalk-helper = !git rev-list --pretty=raw --no-walk --stdin TIG_MAIN_CMD=git tignowalk-helper $tmp tig /dev/tty The possibility to specify commands was removed in favor of improving options given on the command line. In this spirit, I suggest to support something like the following: tig --no-walk --stdin tmp-file Would that cover your use case? -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [ANNOUNCE] tig-1.0
On Mon, Sep 24, 2012 at 10:57 AM, Jean-Baptiste Quenot j...@caraldi.com wrote: This actually happens everytime I run a git command with a key binding, be it successful or not. The main view is restored to the tip of the current branch. If I have understood the problem correctly, you have a keybinding mapping 'M' to `git merge %(commit)` or something like that and when you type 'M', tig will list the commits in the master branch after executing the external command. I didn't account for this in the patch, and I will have to figure out a way to disable the current behavior of reloading the main view after executing an external command. -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-1.1
Hello, I've release tig version 1.1 with a bunch of improvements and bug fixes. Note that tig no longer uses move/copy detection by default to work better on large repository. See the release notes below on how to restore the old behavior. What is tig? Tig is an ncurses-based text-mode interface for git. It functions mainly as a git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various git commands. - 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 - Gitweb: http://repo.or.cz/w/tig.git Release notes - Incompatibilities: - Disable diff move/copy detection by default, boosting diff performance on larger projects. Use git config 'diff.renames' option (git-wide) to set your preferred behavior. Environment variable TIG_DIFF_OPTS can be used to restore the old behavior. - Values set for author-width and filename-width will result in widths one character bigger than previously. Improvements: - Typing a text in the prompt will be interpreted as a tig command. Prefixing the command with a '!' will execute this system command in an external pager. Entering a single key will execute the corresponding key binding. - Basic support for wrapping long line in pager, diff, and stage views. Enable using: `set wrap-lines = yes`. (GH #2) - User-defined commands prefixed with a '?' means prompt before execution. Example: `bind main B !?git rebase -i %(commit)`. - User-defined commands prefixed with a '' means exit after execution. Example: `bind main C !git commit`. (GH #66) - User-defined commands are executed unquoted to support shell commands. Example: `bind generic I !@sh -c echo -n %(commit) | xclip -selection c`. (GH #65) - Configure case-insensitive searches using: `set ignore-case = yes`. - Add deleted mode line type for better diff coloring. - Open editor when requesting edit action from within a file diff. - Update AX_WITH_CURSES to build under Cygwin. - Improve tigrc(5) documentation. (Debian #682766) - Allow to build on Mac OS 10.7 without the configure script. (GH #25) - Add option to split the view vertically instead of horizontally. Example: `set vertical-split = yes'. (GH #76) - Add 'show-id' and 'id-width' options to configure the display of commit IDs in the main view and ID width in the blame view. (GH #77) - Allow to override git-based encoding to UTF-8 by setting 'i18n.commitencoding' or 'gui.encoding'. - Improve autobuild support to track generated files and work with autoreconf 2.61. - Commit IDs are read from stdin when --stdin is given; works for main and diff view, e.g. `tig --no-walk --stdin cherry-picks.txt`. - Add option to disable focusing of the child view when it's opened. Disable using: `set focus-child = no`. (GH #83) - Allow to open blob related with added content in a diff. (GH #91) Bug fixes: - Fix commit graph regression when a path spec is specified. (GH #53) - Main view: only show staged/unstaged changes for the current branch. - Support submodules created with current version of git. (GH #54) - Fix diff status message for file diffs with no content changes. - Fix parent blaming when tig is launched in subdirectory. (GH #70) - Do not show deleted branch when reloading the branch view. Change summary -- The diffstat and log summary for changes made in this release. .gitignore |2 + INSTALL|8 + Makefile | 35 +- NEWS | 57 ++- autogen.sh | 22 + config.make.in | 12 +- configure.ac | 13 +- contrib/announcement.sh|2 +- contrib/aspell.dict| 338 ++-- contrib/ax_with_curses.m4 | 544 --- contrib/config.make-Darwin |3 + contrib/tig.spec.in|4 + contrib/update-release-docs.sh | 53 ++ git.h | 36 +- io.c | 64 ++- io.h |9 +- manual.txt | 47 +- refs.c |2 +- test-graph.c |2 +- tig.1.txt |3 +- tig.c | 960 +++- tig.h | 51 ++- tigrc.5.txt| 142 - 23 files changed, 1806 insertions(+), 603 deletions(-) 1 Beat Bolli 1 Donald Chai 1 Douglas Livingstone 1 Hugo Schmitt 1 Jiri Jaburek 43 Jonas Fonseca 2 Petr Uzel 2 Rich Healey 1 Ryan Schlesinger 8 Samuel Bronson 3 Valentin Haenel 1 Victor Foitzik 7 Vivien Didelot 1 Štěpán Němec -- Jonas
[PATCH] Documentation: Add asciidoc.conf file and gitlink: macro
Introduce an asciidoc.conf file with the purpose of adding a gitlink: macro which will improve the manpage output. Most notably this changes the following in cogito.7 ... cg-add: cg-add.html [-N] FILE... Add files to the GIT repository. cg-branch-add: cg-branch-add.html BRANCH_NAME LOCATION Add new branch to the GIT repository. ... to ... cg-add [-N] FILE... Add files to the GIT repository. cg-branch-add BRANCH_NAME LOCATION Add new branch to the GIT repository. ... Signed-off-by: Jonas Fonseca [EMAIL PROTECTED] --- I only did the Cogito part, since it was a lot easier. If this is desirable for the GIT core manpages I'd be happy to provide a similar patch to remove the confusing .html links from GIT manpages. Documentation/Makefile |4 ++-- Documentation/asciidoc.conf| 18 ++ Documentation/make-cg-asciidoc |6 +++--- Documentation/make-cogito-asciidoc | 19 ++- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/Documentation/Makefile b/Documentation/Makefile --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -48,13 +48,13 @@ clean: rm -f *.xml *.html *.1 *.7 cg-*.txt cogito.txt %.html : %.txt - asciidoc -b xhtml11 -d manpage $ + asciidoc -b xhtml11 -d manpage -f asciidoc.conf $ %.1 %.7 : %.xml xmlto man $ %.xml : %.txt - asciidoc -b docbook -d manpage $ + asciidoc -b docbook -d manpage -f asciidoc.conf $ cogito.txt : make-cogito-asciidoc ./make-cogito-asciidoc $@ diff --git a/Documentation/asciidoc.conf b/Documentation/asciidoc.conf new file mode 100644 --- /dev/null +++ b/Documentation/asciidoc.conf @@ -0,0 +1,18 @@ +## gitlink: macro +# +# Usage: gitlink:command[manpage-section] +# +# Note, {0} is the manpage section, while {target} is the command. +# +# Show GIT link as: command(section); if section is defined, else just show +# the command. + +ifdef::backend-docbook[] +[gitlink-inlinemacro] +{target}{0?({0})} +endif::backend-docbook[] + +ifdef::backend-xhtml11[] +[gitlink-inlinemacro] +a href={target}.html{target}{0?({0})}/a +endif::backend-xhtml11[] diff --git a/Documentation/make-cg-asciidoc b/Documentation/make-cg-asciidoc --- a/Documentation/make-cg-asciidoc +++ b/Documentation/make-cg-asciidoc @@ -40,7 +40,7 @@ CAPTION=$(echo $HEADER | head -n 1 | t # were referenced as `cg-command`. This way references from cg-* combos in # code listings will be ignored. BODY=$(echo $HEADER | sed '0,/^$/d' \ - | sed 's/`\(cg-[a-z-]\+\)`/link:\1.html[\1]/') + | sed 's/`\(cg-[a-z-]\+\)`/gitlink:\1[1]/') DESCRIPTION= OPTIONS= @@ -108,6 +108,6 @@ $COPYRIGHT SEE ALSO -$COMMAND command is part of link:cogito.html[cogito(7)], -a toolkit for managing link:git.html[git(1)] trees. +$COMMAND command is part of gitlink:cogito[7], +a toolkit for managing gitlink:git[7] trees. __END__ diff --git a/Documentation/make-cogito-asciidoc b/Documentation/make-cogito-asciidoc --- a/Documentation/make-cogito-asciidoc +++ b/Documentation/make-cogito-asciidoc @@ -8,10 +8,11 @@ ADVANCED_COMMANDS=$(ls ../cg-admin-*) HELPER_COMMANDS=$(ls ../cg-X*) $(ls ../*-id | grep -v git-) # Shorthand for the link markup. -link() +man() { - command=$1 - echo link:$command.html['$command'] + section=$1 + command=$2 + echo gitlink:$command[$section] } # Print description list entry. @@ -28,7 +29,7 @@ print_command_info() ;; cg-*) usage=$(sed -n '/^USAGE=/,0s/.*cg-[^ ]*\(.*\)/\1/p' $command) - echo link:$cmdname.html[$cmdname] $usage:: + echo gitlink:$cmdname[] $usage:: ;; esac echo $caption @@ -62,7 +63,7 @@ storage system. Amongst some of the note for branching, tagging and multiple backends for distributing repositories (local files, rsync, HTTP, ssh). -'Cogito' is implemented as a series of 'bash(1)' scripts on top of $(link git) +'Cogito' is implemented as a series of 'bash(1)' scripts on top of $(man 7 git) (a content-tracking filesystem) with the goal of providing an interface for working with the 'GIT' database in a manner similar to other SCM tools (like 'CVS', 'BitKeeper' or 'Monotone'). @@ -107,21 +108,21 @@ $(print_command_listing $HELPER_COMMANDS Command Identifiers --- BRANCH_NAME:: - Indicates a branch name added with the $(link cg-branch-add) command. + Indicates a branch name added with the $(man 1 cg-branch-add) command. COMMAND:: Indicates a 'Cogito' command. The \`cg-\` prefix is optional. LOCATION:: - Indicates a local file path or a URI. See $(link cg-branch-add) for a + Indicates a local file path or a URI. See $(man 1 cg-branch-add) for a list of supported URI schemes. COMMIT_ID, FROM_ID, TO_ID
[PATCHSET] Cogito documentation updates
The patchset contains the following 5 patches: [PATCH 1/5] Also install cg-*.txt files [PATCH 2/5] Add SEE ALSO section to cogito(7) which mentions git(7) [PATCH 3/5] Generate Documentation/introduction.html from the README file [PATCH 4/5] Add more AsciiDoc markup to the README file [PATCH 5/5] Ignore patch backup files (*.{orig,rej}) when finding cg-* manpage scripts -- Jonas Fonseca - To unsubscribe from this list: send the line unsubscribe git in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/5] Also install cg-*.txt files
Signed-off-by: Jonas Fonseca [EMAIL PROTECTED] --- debian/rules |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/debian/rules b/debian/rules --- a/debian/rules +++ b/debian/rules @@ -67,6 +67,7 @@ install: build $(MAKE) install DESTDIR=$(CURDIR)/debian/cogito prefix=/usr # $(RM) $(DESTDIR)/usr/bin/cg install -m 0644 Documentation/*.html $(DESTDIR)/usr/share/doc/cogito/html + install -m 0644 Documentation/cg-*.txt $(DESTDIR)/usr/share/doc/cogito/txt install -m 0644 Documentation/cogito.txt $(DESTDIR)/usr/share/doc/cogito/txt install -m 0644 Documentation/*.1 $(DESTDIR)/usr/share/man/man1 install -m 0644 Documentation/*.7 $(DESTDIR)/usr/share/man/man7 -- Jonas Fonseca - To unsubscribe from this list: send the line unsubscribe git in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 5/5] Ignore patch backup files when finding cg-* manpage scripts
Adds ../cg-*.{orig,rej} to CG_IGNORE. Signed-off-by: Jonas Fonseca [EMAIL PROTECTED] --- Documentation/Makefile |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/Documentation/Makefile b/Documentation/Makefile --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -1,4 +1,4 @@ -CG_IGNORE=$(wildcard ../cg-X*) +CG_IGNORE=$(wildcard ../cg-X* ../cg-*.orig ../cg-*.rej) CG_SRC=$(filter-out $(CG_IGNORE), $(wildcard ../cg-*)) MAN1_TXT=$(patsubst ../cg-%,cg-%.txt,$(CG_SRC)) -- Jonas Fonseca - To unsubscribe from this list: send the line unsubscribe git in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.1
| 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 -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.1.1
Hi, This release fixes a couple of regressions that broke rendering of references in the main view and usage of the stage view. It also adds support for key combos which was originally planed for 2.1 (see contrib/vim.tigrc for an example). Finally, files (or blobs) can now be searched using the new GitHub-inspired file finder (press 'f' to launch it). - 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 - Gitter: https://gitter.im/jonas/tig - QA: http://stackoverflow.com/questions/tagged/tig Release notes - Improvements: - Add support for key combos. (GH #67) - See `contrib/vim.tigrc` for Vim-like keybindings. (GH #273, #351) - Add GitHub inspired file finder to search for and open any file. (GH #342) - Add `search` keymap for navigation file finder search results. Bug fixes: - Fix display of multiple references per commit. (GH #390, #391) - Sync the prompt's cursor position with readline's internal position. (#396) - Keep unstaged changes view open after an staging command. (#399) Change summary -- The diffstat and log summary for changes made in this release. .gitignore | 3 + COPYING | 39 ++-- Makefile | 45 - NEWS.adoc| 16 ++ README.adoc | 2 +- config.make.in | 5 +- configure.ac | 5 + contrib/vim.tigrc| 73 doc/tigrc.5.adoc | 3 +- include/tig/blob.h | 7 +- include/tig/display.h| 2 +- include/tig/keys.h | 10 +- include/tig/main.h | 2 + include/tig/prompt.h | 1 + include/tig/ui.h | 20 ++ src/blob.c | 29 ++- src/display.c| 19 +- src/keys.c | 56 -- src/main.c | 20 ++ src/options.c| 2 +- src/prompt.c | 25 +-- src/refdb.c | 21 ++- src/stage.c | 22 +-- src/status.c | 2 + src/tig.c| 58 -- src/ui.c | 304 +++ test/help/all-keybindings-test | 10 +- test/help/default-test | 14 +- test/main/graph-argument-test| 28 +-- test/main/show-changes-test | 24 +++ test/main/start-on-line-test | 42 ++--- test/main/view-split-test| 18 +- test/regressions/github-390-test | 41 + test/status/file-name-test | 8 +- test/tigrc/compat-error-test | 2 - test/tigrc/parse-test| 4 +- tigrc| 7 + tools/aspell.dict| 12 +- tools/gcov.m4| 94 ++ 39 files changed, 912 insertions(+), 183 deletions(-) Alexander Sulfrian (1): Fix insertion/ordering of refs in refs_by_id map. Andreas Stieger (1): Update FSF address in COPYING Jonas Fonseca (12): Remove Gitweb link in favour of Gitter Integrate coverage reporting for the test suite Experimental support for key combos Fix user-action prompt display regression Add key_to_value helper to extract the ncurses key value Add GitHub inspired file finder to search for and open any file Fix regression test to exec git-tag in background Fix display saving to account for variable length UTF-8 characters When redrawing the readline prompt also update the cursor position Keep unstaged changes view open after an staging command Add search keymap with keys for navigating search results tig-2.1.1 Ramsay Jones (1): Fix segmentation Fault on 32-bit Vivien Didelot (1): contrib: complete Vim-like bindings -- Jonas Fonseca -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [TIG PATCH] test: make diff/log work with git 2.9
On Tue, Jun 14, 2016 at 4:34 AM, Michael J Gruber <g...@drmicha.warpmail.net> wrote: > git 2.9.0 switches the default for diff.renames to true. > > Set this to false in config so that the test suite runs unmodified for > old and new git. Thanks! -- Jonas Fonseca -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.2
| 59 +++ test/refs/default-test| 53 +-- test/refs/refresh-test| 56 +-- test/refs/replace-test| 1 - test/refs/util.sh | 13 - test/refs/worktree-test | 33 ++ test/regressions/github-434-test | 123 ++ test/stage/default-test | 4 +- test/stage/gh-410-test| 73 test/stage/split-chunk-test | 96 + test/status/file-name-test| 8 +- test/status/file-var-test | 59 +++ test/status/on-branch-test| 32 +- test/status/on-branch-tracking-info-test | 105 + test/status/refresh-test | 22 +- test/status/repo-var-test | 21 + test/status/start-on-line-test| 2 +- test/status/untracked-files-test | 4 +- test/status/worktree-test | 32 ++ test/tigrc/compat-error-test | 16 +- test/tigrc/view-column-test | 7 +- test/tigrc/xdg-config-home-test | 31 ++ test/tools/libgit.sh | 149 +-- test/tools/libtest.sh | 198 +++-- test/tools/show-results.sh| 10 +- test/tools/test-graph.c | 4 +- tigrc | 9 +- tools/aspell.dict | 14 +- tools/doc-gen.c | 12 +- tools/uninstall.sh| 35 ++ 130 files changed, 4781 insertions(+), 1609 deletions(-) 2 Adam Strzelecki 1 Alexander Campbell 1 Bostjan Skufca 1 Daniel Hahler 1 Edgar HIPP 3 Eric Sunshine 1 Harish Lall 1 Jeff King 3 Jeremy Cowgar 84 Jonas Fonseca 1 Kentaro Wada 1 Laurent Arnoud 1 Mantas Mikulėnas 2 Michael J Gruber 1 Murilo Opsfelder Araujo 1 Olof-Joachim Frahm 1 Reuben D'Netto 2 Richard Burke 2 Sven Wegener 4 Vivien Didelot 1 Wolfgang Reissnegger 1 ideal 1 samiraguiar -- Jonas Fonseca -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] tig-2.2.1
Hello, A new minor version of tig is available which adds support for diff-highlight (see instructions below) and navigation between merge commits as well as several keybinding tweaks. Tarballs should now be downloaded from GitHub. Either go to https://github.com/jonas/tig/releases or use the following pattern: https://github.com/jonas/tig/releases/download/tig-VERSION/tig-VERSION.tar.gz MD5 checksums can be found at: https://github.com/jonas/tig/releases/download/tig-VERSION/tig-VERSION.tar.gz.md5 Similarly, the home page is now also on GitHub at https://jonas.github.io/tig/. A big thanks to Simon L. B. Nielsen for generously hosting Tig on nitro.dk! Release notes - Improvements: - Support Git's 'diff-highlight' program when `diff-highlight` is set to either true or the path of the script to use for post-processing. - Add navigation between merge commits. (GH #525) - Add 'A' as a binding to apply a stash without dropping it. - Bind 'Ctrl-D' and 'Ctrl-U' to half-page movements by default. - manual: Mention how to change default Up/Down behavior in diff view. Bug fixes - Reorganize checking of libraries for termcap functions. - Fix `:goto ` error message. Change summary -- The short diffstat and log summary for changes made in this release. 118 files changed, 3765 insertions(+), 3284 deletions(-) 22 Jonas Fonseca 1 Frank Fesevur 1 Jelte Fennema 1 Jeremy Lin 1 Parker Coates 1 Philipp Gesang 1 Ramsay Jones 1 David Lin 1 lightside -- Jonas Fonseca
[ANNOUNCE] tig-2.2.2
Hello, A new version of Tig has been release with several improvements and bug fixes. What is Tig? Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands. - Homepage: https://jonas.github.io/tig/ - Manual: https://jonas.github.io/tig/doc/manual.html - Tarballs: https://github.com/jonas/tig/releases - Gitter: https://gitter.im/jonas/tig - Q: http://stackoverflow.com/questions/tagged/tig Release notes - Upgrade instructions: - The `status-untracked-dirs` option was renamed to `status-show-untracked-dirs` to match the new `status-show-untracked-files` option. Improvements: - Use `diff-options` when preparing the diff in the stage view to make the diff state configurable. (GH #545) - Add 'status-show-untracked-files' option mirroring Git's 'status.showUntrackedFiles' to toggle display of untracked files. in the status view. On by default. (GH #562) - Update `ax_with_curses.m4` and use `pkg-config` to detect. (GH #546) - Add `tig-pick` script for using Tig as a commit picker. (GH #575, #580) - Add "smart case" option ('set ignore-case = smart-case') to ignore case when the search string is lower-case only. (GH #320, #579) Bug fixes: - Fix author ident cache being keyed by email only. (GH #424, #526, #547) - Fix periodic refresh mode to properly detect ref changes. (GH #430, #591) - Add workaround for detecting failure to start the diff-highlight process. - Show diffs in the stash view when `set mailmap = true`. (GH #556) - Fix parsing of git-log revision arguments, such as `--exclude=...` in conjunction with `--all`. (GH #555) - Fix diff stat parsing for binary copies. - Fix crash when resizing terminal while search is in progress. (GH #515, #550) - Fix argument filtering to pass more arguments through to Git. - Check for termcap support in split tinfo libs. (GH #568, #585) Change summary -- The diffstat and log summary for changes made in this release. INSTALL.adoc | 10 +- Makefile | 2 +- NEWS.adoc| 44 - README.adoc | 2 +- book.md | 2 +- config.make.in | 2 +- configure.ac | 2 +- contrib/tig-pick | 48 + doc/manual.adoc | 5 +- doc/screenshots.md | 11 --- doc/tig.1.adoc | 2 +- doc/tigrc.5.adoc | 15 ++- include/tig/argv.h | 1 + include/tig/diff.h | 4 +- include/tig/git.h| 4 +- include/tig/options.h| 5 +- include/tig/types.h | 12 ++- include/tig/util.h | 1 + include/tig/view.h | 4 +- src/argv.c | 4 +- src/blame.c | 29 +++--- src/blob.c | 16 ++- src/diff.c | 56 ++- src/display.c| 8 +- src/draw.c | 2 +- src/grep.c | 4 +- src/help.c | 9 +- src/io.c | 8 +- src/log.c| 2 +- src/main.c | 16 +-- src/options.c| 72 +- src/pager.c | 10 +- src/parse.c | 14 ++- src/refs.c | 21 ++-- src/search.c | 16 ++- src/stage.c | 44 - src/stash.c | 6 +- src/status.c | 40 +--- src/tig.c| 30 +++--- src/tree.c | 10 +- src/util.c | 6 +- src/view.c | 25 ++--- src/watch.c | 2 +- test/diff/diff-highlight-test| 38 ++- test/files/repo-authornamechange.tgz | Bin 0 -> 7557 bytes test/main/author-name-change-test| 27 + test/main/filter-args-test | 74 ++ test/main/refresh-periodic-test | 74 ++ test/main/search-test| 22 + test/status/untracked-files-test | 27 + test/tigrc/compat-error-test | 5 +- tigrc| 6 +- tools/aspell.dict| 9 +- tools/ax_lib_readline.m4 | 16 ++- tools/ax_require_defined.m4 | 37 +++ tools/ax_with_curses.m4 | 142 +++ 56 files changed, 822 insertions(+), 281 deletions(-) 22
[ANNOUNCE] tig-2.3.0
age/split-chunk-test | 2 +- test/stash/start-on-line-test | 2 +- test/status/file-name-test| 6 +- test/status/on-branch-test| 18 +- test/status/on-branch-tracking-info-test | 20 +- test/status/refresh-test | 2 +- test/status/repo-var-test | 17 +- test/tigrc/builtin-save-test | 16 + test/tigrc/command-value-long-test| 58 ++ test/tigrc/contrib-tigrc-test | 4 +- test/tigrc/parse-test | 15 +- test/tigrc/save-option-test | 9 +- test/tigrc/source-test| 116 +++ test/tigrc/tigrc-manpage-examples-test| 14 +- test/tigrc/truncation-test| 213 ++ test/tigrc/width-test | 504 + test/tigrc/xdg-config-home-test | 6 +- test/tools/libgit.sh | 18 +- test/tools/libtest.sh | 392 ++ test/tools/setup-conflict.sh | 4 +- test/tools/show-results.sh| 23 +- test/tools/valgrind-Darwin.supp | 9 + test/tree/chdir-test | 197 + test/tree/file-name-test | 111 +++ tigrc | 36 +- tools/aspell.dict | 24 +- tools/ax_lib_readline.m4 | 12 +- acinclude.m4 => tools/iconv.m4| 0 tools/make-builtin-config.sh | 2 +- tools/release.sh | 2 +- 128 files changed, 4356 insertions(+), 794 deletions(-) 1 Andreas Stieger 1 Dan Wendorf 1 Edgar Hipp 1 Greg Hewgill 35 Jonas Fonseca 2 Marc Aldorasi 1 Ramsay Jones 112 Roland Walker 11 Sven Wegener 1 kiryph -- Jonas Fonseca
[ANNOUNCE] tig-2.3.2
Hello, A regression in 2.3.1 related with the detection of busy loops has been fixed in version 2.3.2. Release notes - Bug fixes: - Fix busy loop detection to handle large repos. (GH #164) Change summary -- The diffstat and log summary for changes made in this release. INSTALL.adoc | 4 ++-- Makefile | 2 +- NEWS.adoc | 7 +++ src/display.c | 4 +++- tools/aspell.dict | 2 +- 5 files changed, 14 insertions(+), 5 deletions(-) Jonas Fonseca (2): Only check for busy loop when no views are updating tig-2.3.2 -- Jonas Fonseca
[ANNOUNCE] tig-2.3.1
Hello, A new release is available fixing a few bugs and improving TTY management. What is Tig? Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands. - Homepage: https://jonas.github.io/tig/ - Manual: https://jonas.github.io/tig/doc/manual.html - Tarballs: https://github.com/jonas/tig/releases - Gitter: https://gitter.im/jonas/tig - Q: https://stackoverflow.com/questions/tagged/tig Release notes - Improvements: - Restore TTY attributes. (GH #725) - Handle `\n` like `\r`. (GH #758) Bug fixes: - Add workaround that detects busy loops when Tig loses the TTY. This may happen if Tig does not receive the HUP signal (e.g. when started with `nohup`). (GH #164) - Fix compatibility with ncurses-5.4 which caused copy-pasting to not work in the prompt. (GH #767) - tig(1): document correct environment variable. (GH #752) Change summary -- The diffstat and log summary for changes made in this release. .travis.yml | 50 ++--- INSTALL.adoc| 13 +++- Makefile| 2 +- NEWS.adoc | 17 + doc/tig.1.adoc | 2 +- include/tig/tig.h | 1 + src/display.c | 127 ++-- test/README.adoc| 17 + test/main/refresh-periodic-test | 2 + test/tools/libtest.sh | 76 +-- tools/aspell.dict | 12 ++- tools/travis.sh | 32 12 files changed, 293 insertions(+), 58 deletions(-) Christian Brabandt (1): Handle \n like \r (#758) David O'Trakoun (1): tig(1): Fix env var checked (#752) Jonas Fonseca (6): Fix formatting of the Windows install documentation Move loop updating views to separate method Fix #164: Add workaround to detect busy event loops Use initscr to ensure proper TTY setup for the prompt (#768) Update NEWS tig-2.3.1 Matt (1): Added another installation method (#753) -- Jonas Fonseca
[ANNOUNCE] tig-2.3.3
Hello, A regression in 2.3.1 (and 2.3.2) related with the detection of busy loops has been revisited in version 2.3.3. Release notes - Bug fixes: - Revert "Handle \n like \r (#758)". (GH #769) - Fix GH #164 by catching SIGHUP. - Change `refs_tags` type to `size_t`. Change summary -- The diffstat and log summary for changes made in this release. INSTALL.adoc | 4 ++-- Makefile | 2 +- NEWS.adoc | 9 + README.adoc | 2 +- src/display.c | 40 src/refdb.c | 2 +- src/tig.c | 12 tools/aspell.dict | 2 +- 8 files changed, 27 insertions(+), 46 deletions(-) Alexander Droste (1): Revert "Handle \n like \r (#758)" (#769) Jonas Fonseca (3): Fix #164 by catching SIGHUP Change refs_tags type to size_t tig-2.3.3 harshavardhan (1): updated https to https (#777) -- Jonas Fonseca
[ANNOUNCE] tig-2.4.0
Hi, I'm pleased to announce Tig version 2.4.0 with improvements to UTF-8 handling and compatibility with Git as well as a ton of bug fixes, What is Tig? Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands. - Homepage: https://jonas.github.io/tig/ - Manual: https://jonas.github.io/tig/doc/manual.html - Tarballs: https://github.com/jonas/tig/releases - Gitter: https://gitter.im/jonas/tig - Q: https://stackoverflow.com/questions/tagged/tig Release notes - Improvements: - Add 'send-child-enter' option to control interaction with child views. (#791) - Update make config defaults for Cygwin to ncurses6. (#792) - Build against netbsd-curses. (#789) - Change the blame view to render more like `git blame`. (#812) - Improve worktree and submodule support. (#459, #781, #783) - Support running Tig via a Git alias. (#763) - Use ISO-8601 letters for short relative dates. (#759, #760) - Change date formatting to show time zones by default. (#428, #811) - Use utf8proc to handle Unicode characters. (#827) Bug fixes: - Fix `file(1)` argument on Linux used for resolving encodings. (#788) - Fix underflow in the file search. (#800, #801) - Fix line numbers in grep view when scrolled. (#813) - Pass command line args through to the stage view. (#569, #823) - Fix resource leak. (#780) - Fix various compiler warnings and pointer arithmetic. (#799, #803) - Workaround potential null pointer dereferences. (#824) - Bind to single and double quotes by using the ** and ** key mappings. (#821) - Make Tig the process-group leader and clean child processes. (#828, #837) - Fix sh compatibility in `contrib/tig-pick`. (#832) - Fix incorrect behaviour of up and down keys in diff view when opened from diff preview. (#802, #835) - Open the stage view when maximizing a split diff view of (un)staged changes. (#836) - Use fully qualified reference name for tags when conflicting with branch name. (#746, #787, #849) - Fix resize not working after entering command. (#845) (#846) - Use stack allocated memory to handle TIG_LS_REMOTE. (#839) - Fix deleted file mode line remains highlighted after hovering in diff or stage view. (#851) - Fix `TIG_LS_REMOTE` not working with git-ls-remote(1). (#853, #854) Thanks to everyone who contributed (in alphabetical order): Björn Andersson, Brtwrst, Diego Pomares, Jonas Fonseca, Leo Arias, Maksim Odnoletkov, Max Odnoletkov, PaulChanHK, Pavel Roskin, Roland Walker, Ronan Jouchet, Thomas Koutcher, hwangcc23, plgruener, rofl0r -- Jonas Fonseca