* [ANNOUNCE] tig-0.11
@ 2008-04-06 20:05 Jonas Fonseca
2008-04-10 4:02 ` Jeff King
2008-05-03 21:11 ` Pascal Obry
0 siblings, 2 replies; 5+ messages in thread
From: Jonas Fonseca @ 2008-04-06 20:05 UTC (permalink / raw)
To: git
Hello,
This tig release brings many fixes and improvements to the user
interface. Fix pager mode and disable view rely on git directory. The
date and author columns as well as references can now be toggled on and
off. Local (unsigned) tags are now shown as references and the builtin
reference colors have been changed to highlight the current branch and
the remote tracked by the current branch. The status and stage views are
now reloaded after running external commands (e.g. git commit) so they
stay up to date. Finally, add a blame view accessible from the command
line (tig blame [rev] file), status view as well as the tree view (by
pressing 'B').
Options that were deprecated in 0.10 has been removed except for -S and
the old -- handling is also gone. Unless anybody complains tig diff will
probably also go, while I am still considering what to do with the log
subcommand.
For next release I hope that horizontal scrolling will be fixed. With
the recent interest in textual representation of commit graphs, fixing
or rewriting tig's graph rendering could also be a good addition.
What is tig?
------------
Tig is a ncurses-based text-mode interface for git. It functions mainly
as a git repository browser, but can also 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/
Gitfeed: git://repo.or.cz/tig.git
Gitweb: http://repo.or.cz/w/tig.git
Changes in this release
-----------------------
Below is the diffstat and shortlog for changes made in this release.
TODO | 5 +-
VERSION | 2 +-
asciidoc.conf | 2 +-
configure.ac | 12 +-
manual.txt | 10 +-
tig.1.txt | 12 +-
tig.c | 1652 ++++++++++++++++++++++++++++++++++++++++-----------------
tigrc.5.txt | 109 +++--
8 files changed, 1271 insertions(+), 533 deletions(-)
Dominik Vogt (4):
New actions toggle-date, toggle-author, and toggle-refs.
Fixed displaying local tags.
New config options show-author, show-date, show-refs, show-line-numbers.
Call realloc() less often because it is potentially slow.
Jonas Fonseca (58):
0.11.git
TODO: --boundary flag is already used
utf8_length: add reserve flag for reserving a trailing character
draw_text: minor cleanup to use fewer local variables
draw_text: reduce indentation level
Fix index refreshing into separate call so diff-files is always run
configure: test for git binary and improve config subcommand test
tigrc(5): Improve documentation of new show-* options
Move unrelated UTF-8 setup code out of parse_options
Use rewritten parent info from --parents to simplify the revgraph
draw_text: remove unused col argument
Simplify subcommand option parsing by moving it out of the loop
Add hack to allow view loading to have multiple phases
Add blame view
Various fixes and improvements of the new blame view
More blame view fixes
Remove deprecated options and cleanup option parsing
blame: Fix opening from subdirectory and consecutive invokations
Save current branch from rev-parse output and highlight it
Show the current branch in the status view
Rename "main-delim" color to the more generic "delimiter"
Add support for preparing the initial commit in the status view
Oops, fix delimiter documentation
Avoid reloading the status view when nothing was updated
Fix uninitialized variable warning
Fix and improve status refreshing after updating
Improve perfomance and usability when updating many files
stage: disable whitespace warnings from git apply when staging updates
Fix pager mode by always doing the isatty()
Disable opening views that require a git directory when in pager mode
Add action to maximize the current view; bound to M by default
Add draw_lineno() and use when drawing the blame and pager view
Show the tracked remote branch with bold text
Make local tags and normal branches use normal font-weight
status: use draw_text completely
Merge branch 'master' of remote-server:src/tig
Do not load repository references when acting as a pager
Rename load_repo_config() to load_git_config()
Share the line number colors between blame view and others
Use werase() instead of wclear() when reloading a view
When toggling options redraw the view instead of the whole display
Add support for refreshing of the stage view
Reload the status and stage views after a run request has been handled
Improve staging of diff chunks
Error out when starting up in empty main or blame view
Fix compatibility for git rev-parse without --symbolic-full-name
Revert "When toggling options redraw the view instead of the whole display"
Use 3 as the minimum width of formatted line numbers
Avoid splitting the view when navigating stage view in full screen
Squelsh output of update-index when loading the status view
Make the main and blame view share date drawing and date colors
Setup colors for the selected line in draw_view_line()
Minor cleanup in blame_draw
Use tables for listing the UI colors
Remove unused blame line attributes
Update copyright notice for the manual
Use sans-serif font for the README page
tig-0.11
Stefan Naewe (1):
Output extra \n on tig -h
--
Jonas Fonseca
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ANNOUNCE] tig-0.11
2008-04-06 20:05 [ANNOUNCE] tig-0.11 Jonas Fonseca
@ 2008-04-10 4:02 ` Jeff King
2008-04-10 8:56 ` Jonas Fonseca
2008-05-03 21:11 ` Pascal Obry
1 sibling, 1 reply; 5+ messages in thread
From: Jeff King @ 2008-04-10 4:02 UTC (permalink / raw)
To: Jonas Fonseca; +Cc: git
On Sun, Apr 06, 2008 at 10:05:33PM +0200, Jonas Fonseca wrote:
> stay up to date. Finally, add a blame view accessible from the command
> line (tig blame [rev] file), status view as well as the tree view (by
> pressing 'B').
Hi Jonas,
Thanks for all your hard work. I have really been enjoying the new
blame view; blame was the only reason I ever used git-gui, and now I can
stay in the terminal all the time.
One feature that I have often wanted when using the blame view is to
restart the blame from the parent commit of a blamed commit. That is,
given a line like:
2007-08-22 19:36 Jonas Fonseca 776bf2a 15│ #include "config.h"
I look at 776bf2a, and realize that there was some other interesting
form of the line _before_ that commit. So I want to start reblaming at
776bf2a^.
Below is an initial attempt at a patch, but it has some problems:
- the interface is a bit klunky. Since commits may have multiple
parents, it seemed wrong to always just choose the first parent.
I chose '1' to reblame from the first parent and '2' from the second
(and obviously 3-9 could do the same).
My thought was that the same functionality could be applied to the
commit viewer to jump to the parent. But maybe grabbing a string and
appending it to the commit id would make the most sense.
- it reloads the blame view with new parameters, which will put the
cursor back at line 1. It would be nice to stay at approximately the
same line (approximate because the line numbers will change; just
staying at the same line number makes sense to me).
I tried a few things, but it looks like we throw out the line
numbers when we do a reload. I tried saving the line number and
trying to scroll to it afterwards, but there is some trickery
required because we have to wait until the view is loaded again. Is
there any sane way to do this within the current framework?
- opening a blame view, blaming a parent, and then opening the diff
viewer can cause a segfault. I assume I'm violating some assumption
through my open_view() call. Since the patch is only about 15 lines,
I'm hoping there's something obvious you can comment on.
-Peff
---
diff --git a/tig.c b/tig.c
index a3d2232..7a5497a 100644
--- a/tig.c
+++ b/tig.c
@@ -371,6 +371,8 @@ sq_quote(char buf[SIZEOF_STR], size_t bufsize, const char *src)
REQ_(STATUS_MERGE, "Merge file using external tool"), \
REQ_(TREE_PARENT, "Switch to parent directory in tree view"), \
REQ_(EDIT, "Open in editor"), \
+ REQ_(PARENT_ONE, "Go to first parent"), \
+ REQ_(PARENT_TWO, "Go to second parent"), \
REQ_(NONE, "Do nothing")
@@ -771,6 +773,8 @@ static struct keybinding default_keybindings[] = {
{ 'M', REQ_STATUS_MERGE },
{ ',', REQ_TREE_PARENT },
{ 'e', REQ_EDIT },
+ { '1', REQ_PARENT_ONE },
+ { '2', REQ_PARENT_TWO },
/* Using the ncurses SIGWINCH handler. */
{ KEY_RESIZE, REQ_SCREEN_RESIZE },
@@ -3678,6 +3682,32 @@ blame_request(struct view *view, enum request request, struct line *line)
open_view(view, REQ_VIEW_DIFF, flags);
break;
+ case REQ_PARENT_ONE:
+ case REQ_PARENT_TWO:
+ if (!blame->commit) {
+ report("No commit loaded yet");
+ break;
+ }
+
+ if (!strcmp(blame->commit->id, "0000000000000000000000000000000000000000")) {
+ report("No commit selected");
+ break;
+ }
+
+ string_ncopy(opt_ref, blame->commit->id, 40);
+ switch (request) {
+ case REQ_PARENT_ONE:
+ string_add(opt_ref, 40, "^1");
+ break;
+ case REQ_PARENT_TWO:
+ string_add(opt_ref, 40, "^2");
+ break;
+ default:
+ break;
+ }
+ open_view(view, REQ_VIEW_BLAME, flags|OPEN_RELOAD);
+ break;
+
default:
return request;
}
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [ANNOUNCE] tig-0.11
2008-04-10 4:02 ` Jeff King
@ 2008-04-10 8:56 ` Jonas Fonseca
0 siblings, 0 replies; 5+ messages in thread
From: Jonas Fonseca @ 2008-04-10 8:56 UTC (permalink / raw)
To: Jeff King; +Cc: git
Jeff King <peff@peff.net> wrote Thu, Apr 10, 2008:
> On Sun, Apr 06, 2008 at 10:05:33PM +0200, Jonas Fonseca wrote:
>
> > stay up to date. Finally, add a blame view accessible from the command
> > line (tig blame [rev] file), status view as well as the tree view (by
> > pressing 'B').
>
> Hi Jonas,
Hello Jeff,
> Thanks for all your hard work. I have really been enjoying the new
> blame view; blame was the only reason I ever used git-gui, and now I can
> stay in the terminal all the time.
That is great to hear.
> One feature that I have often wanted when using the blame view is to
> restart the blame from the parent commit of a blamed commit. That is,
> given a line like:
>
> 2007-08-22 19:36 Jonas Fonseca 776bf2a 15│ #include "config.h"
>
> I look at 776bf2a, and realize that there was some other interesting
> form of the line _before_ that commit. So I want to start reblaming at
> 776bf2a^.
The current blame capability is very basic and this sounds like a good
idea for extending it.
> Below is an initial attempt at a patch, but it has some problems:
>
> - the interface is a bit klunky. Since commits may have multiple
> parents, it seemed wrong to always just choose the first parent.
> I chose '1' to reblame from the first parent and '2' from the second
> (and obviously 3-9 could do the same).
>
> My thought was that the same functionality could be applied to the
> commit viewer to jump to the parent. But maybe grabbing a string and
> appending it to the commit id would make the most sense.
Either that or there could be an option to show parent commit lines in the
diff view à la gitk:
Parent: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa (Do something)
Parent: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb (Do something else)
and then make pressing 'B' on one of them start it. At least this should
solve the problem of having the option for all parents. Using '1', '2',
... or '^' + a number could still work as a short hand.
> - it reloads the blame view with new parameters, which will put the
> cursor back at line 1. It would be nice to stay at approximately the
> same line (approximate because the line numbers will change; just
> staying at the same line number makes sense to me).
>
> I tried a few things, but it looks like we throw out the line
> numbers when we do a reload. I tried saving the line number and
> trying to scroll to it afterwards, but there is some trickery
> required because we have to wait until the view is loaded again. Is
> there any sane way to do this within the current framework?
There is currently no way to do this. Some views have their own hacks to
restore the position. But a general way to preserve the position in a
view across reloads is something that will come in handy for the status
and staging area as well.
> - opening a blame view, blaming a parent, and then opening the diff
> viewer can cause a segfault. I assume I'm violating some assumption
> through my open_view() call. Since the patch is only about 15 lines,
> I'm hoping there's something obvious you can comment on.
Oops. I will look into it when I get more time. Thanks for the ideas and
the clean patch.
--
Jonas Fonseca
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ANNOUNCE] tig-0.11
2008-04-06 20:05 [ANNOUNCE] tig-0.11 Jonas Fonseca
2008-04-10 4:02 ` Jeff King
@ 2008-05-03 21:11 ` Pascal Obry
2008-05-04 19:02 ` Jonas Fonseca
1 sibling, 1 reply; 5+ messages in thread
From: Pascal Obry @ 2008-05-03 21:11 UTC (permalink / raw)
To: Jonas Fonseca; +Cc: git
Jonas,
I see that the '@' key can now move from chunk to chunk. This is nice
but it would be more user friendly if after staging a hunk the cursor
was not moved to the first line! I think it would be better to have the
cursor on top of the next hunk.
Pascal.
--
--|------------------------------------------------------
--| Pascal Obry Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--| http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ANNOUNCE] tig-0.11
2008-05-03 21:11 ` Pascal Obry
@ 2008-05-04 19:02 ` Jonas Fonseca
0 siblings, 0 replies; 5+ messages in thread
From: Jonas Fonseca @ 2008-05-04 19:02 UTC (permalink / raw)
To: Pascal Obry; +Cc: git
Hello Pascal,
Pascal Obry <pascal@obry.net> wrote Sat, May 03, 2008:
> I see that the '@' key can now move from chunk to chunk. This is nice but
> it would be more user friendly if after staging a hunk the cursor was not
> moved to the first line! I think it would be better to have the cursor on
> top of the next hunk.
Great that you noticed.
About your suggestion, Jeff suggested something similar for the blame
view when jumping to parents ealier in this thread. I will put in the
TODO list an entry about adding a general mechanism for saving and
restoring states across reloads and refreshes. The status and tree
views already have something like this and the stage and blame view are
good candidates as well. When the main view will support refreshing
there will be one more potential user.
--
Jonas Fonseca
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-05-05 13:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-06 20:05 [ANNOUNCE] tig-0.11 Jonas Fonseca
2008-04-10 4:02 ` Jeff King
2008-04-10 8:56 ` Jonas Fonseca
2008-05-03 21:11 ` Pascal Obry
2008-05-04 19:02 ` Jonas Fonseca
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).