* [wishlist] graphical diff @ 2007-03-18 13:16 Raimund Bauer 2007-03-18 15:06 ` Robin Rosenberg 2007-03-18 21:39 ` Christian MICHON 0 siblings, 2 replies; 11+ messages in thread From: Raimund Bauer @ 2007-03-18 13:16 UTC (permalink / raw) To: git I think it would be really helpful (especially for newbies like me) to have an option like git diff --gui [revisions] <singe path spec> to fire up a graphical diff viewer (similar to what git-mergetool does). Another good place to start a graphical diff from is probably gitk from a context-menu for the changed files in the lower right pane. Thoughts? -- best regards Ray ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [wishlist] graphical diff 2007-03-18 13:16 [wishlist] graphical diff Raimund Bauer @ 2007-03-18 15:06 ` Robin Rosenberg 2007-03-18 23:09 ` Johannes Schindelin 2007-03-18 21:39 ` Christian MICHON 1 sibling, 1 reply; 11+ messages in thread From: Robin Rosenberg @ 2007-03-18 15:06 UTC (permalink / raw) To: Raimund Bauer; +Cc: git söndag 18 mars 2007 14:16 skrev Raimund Bauer: > I think it would be really helpful (especially for newbies like me) to > have an option like > > git diff --gui [revisions] <singe path spec> > > to fire up a graphical diff viewer (similar to what git-mergetool does). > > Another good place to start a graphical diff from is probably gitk from > a context-menu for the changed files in the lower right pane. > > Thoughts? > Fine, except it is not likely to be my favourite gui. But you don't have to wait, you can get a gui easily today. Pipe the output to another tool. Kompare is such a tool which can take a patch and compare it. It does not have to a single file. You can diff two trees and compare. You'll need at kdesdk version 3.5.5 (or 3.5.6) or the patch in http://bugs.kde.org/show_bug.cgi?id=131717 for kompare to display git diffs. git diff HEAD^..HEAD | kompare - As for other gui's I don't know which ones work easily out of the box. Eclipse will soon have recursive diff mode for git. Seems to work here, so I'll probably submit it soon). -- robin ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [wishlist] graphical diff 2007-03-18 15:06 ` Robin Rosenberg @ 2007-03-18 23:09 ` Johannes Schindelin 2007-03-18 23:51 ` Robin Rosenberg 2007-03-19 8:14 ` Raimund Bauer 0 siblings, 2 replies; 11+ messages in thread From: Johannes Schindelin @ 2007-03-18 23:09 UTC (permalink / raw) To: Robin Rosenberg; +Cc: Raimund Bauer, git [-- Attachment #1: Type: TEXT/PLAIN, Size: 3197 bytes --] Hi, On Sun, 18 Mar 2007, Robin Rosenberg wrote: > söndag 18 mars 2007 14:16 skrev Raimund Bauer: > > I think it would be really helpful (especially for newbies like me) to > > have an option like > > > > git diff --gui [revisions] <singe path spec> And how do you set _what_ gui you want? Everybody has her pet diff-viewer (mine is less, BTW). > Fine, except it is not likely to be my favourite gui. But you don't have > to wait, you can get a gui easily today. > > [...] > > git diff HEAD^..HEAD | kompare - BTW here, "kompare -" does not work as expected. It shows an empty diff. At any rate, have you tried something like "GIT_PAGER='kompare -' git diff HEAD^..HEAD"? This reminds me that I always wanted to be able to set the pager from the command line, so I can set an alias easily: -- snipsnap -- [PATCH] Allow setting the pager from the command line The command `git` already allows piping the output into a pager with `-p`. Now also allow to set the pager with `-p=<pager-cmd>`. With this, it is possible to make an alias of command/pager combos, like this: $ git config alias.showmore '-p=more show' Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- Documentation/git.txt | 8 +++++--- git.c | 7 ++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Documentation/git.txt b/Documentation/git.txt index 0b1203e..5634b30 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -9,7 +9,7 @@ git - the stupid content tracker SYNOPSIS -------- [verse] -'git' [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate] +'git' [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate][=<pager-cmd>] [-n|--name-rev] [-t|--name-rev-by-tags] [--bare] [--git-dir=GIT_DIR] [--help] COMMAND [ARGS] @@ -75,8 +75,10 @@ OPTIONS environment variable. If no path is given 'git' will print the current setting and then exit. --p|--paginate:: - Pipe all output into 'less' (or if set, $PAGER). +-p|--paginate[=<pager-cmd>]:: + Pipe all output into 'less'. You can override this by + "=<pager-cmd>", or setting the environment variables $GIT_PAGER + or $PAGER (in that order). -n|--name-rev: Try naming all SHA1s, and page the result (see diff --git a/git.c b/git.c index fca1dfb..76b126d 100644 --- a/git.c +++ b/git.c @@ -4,7 +4,7 @@ #include "quote.h" const char git_usage_string[] = - "git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate] [--bare] [--git-dir=GIT_DIR] [--help] COMMAND [ARGS]"; + "git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate][=pager_cmd] [--bare] [--git-dir=GIT_DIR] [--help] COMMAND [ARGS]"; static void prepend_to_path(const char *dir, int len) { @@ -58,6 +58,11 @@ static int handle_options(const char*** argv, int* argc) } } else if (!strcmp(cmd, "-p") || !strcmp(cmd, "--paginate")) { setup_pager(); + } else if (!prefixcmp(cmd, "-p=") || + !prefixcmp(cmd, "--paginate=")) { + const char *equal = strchr(cmd, '='); + setenv("GIT_PAGER", equal + 1, 1); + setup_pager(); } else if (!strcmp(cmd, "-n") || !strcmp(cmd, "--name-rev")) setup_name_rev_pager(0); else if (!strcmp(cmd, "-t") || -- 1.5.0.4.2713.g4ff1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [wishlist] graphical diff 2007-03-18 23:09 ` Johannes Schindelin @ 2007-03-18 23:51 ` Robin Rosenberg 2007-03-19 0:09 ` Johannes Schindelin 2007-03-19 8:14 ` Raimund Bauer 1 sibling, 1 reply; 11+ messages in thread From: Robin Rosenberg @ 2007-03-18 23:51 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Raimund Bauer, git måndag 19 mars 2007 00:09 skrev Johannes Schindelin: > On Sun, 18 Mar 2007, Robin Rosenberg wrote: > > git diff HEAD^..HEAD | kompare - > > BTW here, "kompare -" does not work as expected. It shows an empty diff. I think that's what the older kompare did. That why mentioned that you need the verson from 3.5.5, or even 3.5.6 for this to work. > At any rate, have you tried something like "GIT_PAGER='kompare -' git diff > HEAD^..HEAD"? Doesn't work here. Shows empty diff... but AH, that's because of the colored-diff settings. I you have color.diff or color.status set to true neither version will work. With auto the first one will, but not the second. -- robin ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [wishlist] graphical diff 2007-03-18 23:51 ` Robin Rosenberg @ 2007-03-19 0:09 ` Johannes Schindelin 0 siblings, 0 replies; 11+ messages in thread From: Johannes Schindelin @ 2007-03-19 0:09 UTC (permalink / raw) To: Robin Rosenberg; +Cc: Raimund Bauer, git [-- Attachment #1: Type: TEXT/PLAIN, Size: 727 bytes --] Hi, On Mon, 19 Mar 2007, Robin Rosenberg wrote: > måndag 19 mars 2007 00:09 skrev Johannes Schindelin: > > > At any rate, have you tried something like "GIT_PAGER='kompare -' git > > diff HEAD^..HEAD"? > > Doesn't work here. Shows empty diff... > > but AH, that's because of the colored-diff settings. I you have > color.diff or color.status set to true neither version will work. I wonder why we still have "color.diff=true", which is wrong in almost _all_ cases (instead it should be auto). > With auto the first one will, but not the second. That is to be expected... Git actually expects the pager to be just that, a pager. So you have to say $ GIT_PAGER='kompare -' git diff --no-color HEAD^..HEAD Hth, Dscho ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [wishlist] graphical diff 2007-03-18 23:09 ` Johannes Schindelin 2007-03-18 23:51 ` Robin Rosenberg @ 2007-03-19 8:14 ` Raimund Bauer 2007-03-19 13:00 ` Johannes Schindelin 1 sibling, 1 reply; 11+ messages in thread From: Raimund Bauer @ 2007-03-19 8:14 UTC (permalink / raw) To: 'Johannes Schindelin', 'Robin Rosenberg'; +Cc: 'git' On Monday, March 19, Johannes Schindelin wrote: > > söndag 18 mars 2007 14:16 skrev Raimund Bauer: > > > I think it would be really helpful (especially for > newbies like me) > > > to have an option like > > > > > > git diff --gui [revisions] <singe path spec> > > And how do you set _what_ gui you want? Everybody has her pet > diff-viewer > (mine is less, BTW). Maybe with a git.gui config option (like merge.tool)? Or by specifying on the commandline: git diff --gui=<my-gui-differ> ... And <my-gui-differ> = xxdiff | kompare | tkdiff | ... -- best regards Ray ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [wishlist] graphical diff 2007-03-19 8:14 ` Raimund Bauer @ 2007-03-19 13:00 ` Johannes Schindelin 2007-03-19 16:44 ` Raimund Bauer 0 siblings, 1 reply; 11+ messages in thread From: Johannes Schindelin @ 2007-03-19 13:00 UTC (permalink / raw) To: Raimund Bauer; +Cc: 'Robin Rosenberg', 'git' [-- Attachment #1: Type: TEXT/PLAIN, Size: 799 bytes --] Hi, On Mon, 19 Mar 2007, Raimund Bauer wrote: > On Monday, March 19, Johannes Schindelin wrote: > > > söndag 18 mars 2007 14:16 skrev Raimund Bauer: > > > > I think it would be really helpful (especially for > > newbies like me) > > > > to have an option like > > > > > > > > git diff --gui [revisions] <singe path spec> > > > > And how do you set _what_ gui you want? Everybody has her pet > > diff-viewer > > (mine is less, BTW). > > Maybe with a git.gui config option (like merge.tool)? > Or by specifying on the commandline: > > git diff --gui=<my-gui-differ> ... > > And <my-gui-differ> = xxdiff | kompare | tkdiff | ... Have you actually looked at the patch I sent? It is more logical to say "git -p=<bla> diff ..." when the option "-p" (without "=") already exists. Ciao, Dscho ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [wishlist] graphical diff 2007-03-19 13:00 ` Johannes Schindelin @ 2007-03-19 16:44 ` Raimund Bauer 2007-03-19 16:49 ` Johannes Schindelin 0 siblings, 1 reply; 11+ messages in thread From: Raimund Bauer @ 2007-03-19 16:44 UTC (permalink / raw) To: Johannes Schindelin; +Cc: 'Robin Rosenberg', 'git' Hi, On Mon, 2007-03-19 at 14:00 +0100, Johannes Schindelin wrote: > > Maybe with a git.gui config option (like merge.tool)? > > Or by specifying on the commandline: > > > > git diff --gui=<my-gui-differ> ... > > > > And <my-gui-differ> = xxdiff | kompare | tkdiff | ... > > Have you actually looked at the patch I sent? It is more logical to say > "git -p=<bla> diff ..." when the option "-p" (without "=") already exists. I have, and I can't see your patch doing what I want. Sorry if I haven't made myself clear what I want, but I was thinking about a shortcut for something like the following example sequence: $ git show v1.4.0:git.c > git.c.v1.4.0 $ git show v1.4.4:git.c > git.c.v1.4.4 $ tkdiff git.c.v1.4.0 git.c.v1.4.4 $ rm git.c.v1.4.0 git.c.v1.4.4 Replace tkdiff with the differ of your choice. At least for comparing 2 single blobs that behavior should be well defined. For comparing multiple blobs, checking them out in 2 separate directories and starting the differ with the directories could work, but I'm more after the single-file case for now ... and that's also the one that should be easy to start from gitk. If there's a way to do that by setting the pager I'll be happy to do so ;-) > Ciao, > Dscho -- best regards Ray ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [wishlist] graphical diff 2007-03-19 16:44 ` Raimund Bauer @ 2007-03-19 16:49 ` Johannes Schindelin 2007-03-19 20:29 ` Raimund Bauer 0 siblings, 1 reply; 11+ messages in thread From: Johannes Schindelin @ 2007-03-19 16:49 UTC (permalink / raw) To: Raimund Bauer; +Cc: 'Robin Rosenberg', 'git' Hi, On Mon, 19 Mar 2007, Raimund Bauer wrote: > $ git show v1.4.0:git.c > git.c.v1.4.0 > $ git show v1.4.4:git.c > git.c.v1.4.4 > $ tkdiff git.c.v1.4.0 git.c.v1.4.4 > $ rm git.c.v1.4.0 git.c.v1.4.4 This almost looks like a script! Why don't you make it one? Ciao, Dscho ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [wishlist] graphical diff 2007-03-19 16:49 ` Johannes Schindelin @ 2007-03-19 20:29 ` Raimund Bauer 0 siblings, 0 replies; 11+ messages in thread From: Raimund Bauer @ 2007-03-19 20:29 UTC (permalink / raw) To: Johannes Schindelin; +Cc: 'Robin Rosenberg', 'git' On Mon, 2007-03-19 at 17:49 +0100, Johannes Schindelin wrote: > Hi, > > On Mon, 19 Mar 2007, Raimund Bauer wrote: > > > $ git show v1.4.0:git.c > git.c.v1.4.0 > > $ git show v1.4.4:git.c > git.c.v1.4.4 > > $ tkdiff git.c.v1.4.0 git.c.v1.4.4 > > $ rm git.c.v1.4.0 git.c.v1.4.4 > > This almost looks like a script! Why don't you make it one? Because I had hoped that someone more familiar with git and scripting than me can come up with something, that 1.) also works in the multi-file case 2.) can take all the usual object and revision specifiers that git diff takes. And then there's gitk integration ... But I'll take a look at it ;-) > Ciao, > Dscho -- best regards Ray ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [wishlist] graphical diff 2007-03-18 13:16 [wishlist] graphical diff Raimund Bauer 2007-03-18 15:06 ` Robin Rosenberg @ 2007-03-18 21:39 ` Christian MICHON 1 sibling, 0 replies; 11+ messages in thread From: Christian MICHON @ 2007-03-18 21:39 UTC (permalink / raw) To: Raimund Bauer; +Cc: git On 3/18/07, Raimund Bauer <ray007@gmx.net> wrote: > I think it would be really helpful (especially for newbies like me) to > have an option like > > git diff --gui [revisions] <singe path spec> > > to fire up a graphical diff viewer (similar to what git-mergetool does). > > Another good place to start a graphical diff from is probably gitk from > a context-menu for the changed files in the lower right pane. > > Thoughts? > gvimdiff is pretty cool. Have a look at the archives, I asked recently how to perform this, and a few solutions came out (you need a sane shell, and the abilities to create fifos). I'd use it everyday if a true vim/gvim explorer plugin would exist (and it's hard to code!). -- Christian ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2007-03-19 20:29 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-03-18 13:16 [wishlist] graphical diff Raimund Bauer 2007-03-18 15:06 ` Robin Rosenberg 2007-03-18 23:09 ` Johannes Schindelin 2007-03-18 23:51 ` Robin Rosenberg 2007-03-19 0:09 ` Johannes Schindelin 2007-03-19 8:14 ` Raimund Bauer 2007-03-19 13:00 ` Johannes Schindelin 2007-03-19 16:44 ` Raimund Bauer 2007-03-19 16:49 ` Johannes Schindelin 2007-03-19 20:29 ` Raimund Bauer 2007-03-18 21:39 ` Christian MICHON
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).