* git-log produces no output
@ 2006-04-21 17:20 Bob Portmann
2006-04-21 18:11 ` Linus Torvalds
0 siblings, 1 reply; 10+ messages in thread
From: Bob Portmann @ 2006-04-21 17:20 UTC (permalink / raw)
To: Git Mailing List
I am just starting out with git and have a noob question about got-log.
I cannot get any output out of it and am wondering if I am using it
correctly or it is broken. As I understand it, git-log should just
print out the log messages but not the changes, whereas git-whatchanged
will print out both. But while git-whatchanged works, git-log never
does. I have a trivial example below which shows what I mean. But I
get the same result using my real archives and out of git.git as well.
Thanks,
Bob
PS I'm using git 1.3.0 and have tried this on both Mac OS X and Linux
with the same results.
Trivial example:
git-test> mkdir test-log
git-test> cd test-log
test-log> git-init-db
defaulting to local storage area
test-log> echo "Hello World" >hello
test-log> git add .
test-log> git commit -a -m 'One line hello'
Committing initial tree 117c62a8c5e01758bd284126a6af69deab9dbbe2
test-log> echo "Hello World 2" >>hello
test-log> git commit -a -m 'Two line hello'
test-log> git whatchanged -p
diff-tree 9a4d7602fff052b6796c2862edddd11ae2e45d08 (from
a38306518c5e5e8eb630c02Author: Bob Portmann <portmann@xxxx.xx.xx>
Date: Fri Apr 21 10:56:11 2006 -0600
Two line hello
diff --git a/hello b/hello
index 557db03..514e5c5 100644
--- a/hello
+++ b/hello
@@ -1 +1,2 @@
Hello World
+Hello World 2
test-log> git log
test-log>
As you can see git log produces no output. I've tried it with other
options with the same result.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 17:20 git-log produces no output Bob Portmann
@ 2006-04-21 18:11 ` Linus Torvalds
2006-04-21 18:48 ` Bob Portmann
0 siblings, 1 reply; 10+ messages in thread
From: Linus Torvalds @ 2006-04-21 18:11 UTC (permalink / raw)
To: Bob Portmann; +Cc: Git Mailing List
On Fri, 21 Apr 2006, Bob Portmann wrote:
>
> I cannot get any output out of it and am wondering if I am using it
> correctly or it is broken.
You're using it correctly, but it isn't broken for me.
> As I understand it, git-log should just print out the log messages but
> not the changes, whereas git-whatchanged will print out both.
Well, in 1.3.0, "git log" can actually do both, and you can get the
whatchanged output by just saying "git log -p".
But yes, without the "-p", you should get just the log.
And that's exactly what I get, both with current HEAD git, and with a
v1.3.0 checkout.
> test-log> git log
> test-log>
>
> As you can see git log produces no output. I've tried it with other
> options with the same result.
Very strange indeed. Can you do
git log > file
to see if that changes (and see if the file contains anything)? The reason
I mention that is that by default "git log" will start a pager for you,
and if you somehow have a broken PAGER setup, I could imagine exactly the
behaviour you see (although I don't see why "git whatchanged" would work
either, in that case).
Finally, if that doesn't output anything either, please do (for just that
small repository, so that the trace is also small)
strace -o git-trace git log > /dev/null
and send out the result. Again, for PAGER reasons, that "> /dev/null" is
actually important, because we don't want to trigger the pager code.
Linus
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 18:11 ` Linus Torvalds
@ 2006-04-21 18:48 ` Bob Portmann
2006-04-21 18:58 ` Paolo Ciarrocchi
2006-04-21 19:18 ` Linus Torvalds
0 siblings, 2 replies; 10+ messages in thread
From: Bob Portmann @ 2006-04-21 18:48 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Git Mailing List
--- Linus Torvalds <torvalds@osdl.org> wrote:
> On Fri, 21 Apr 2006, Bob Portmann wrote:
> >
> > I cannot get any output out of it and am wondering if I am using
> it
> > correctly or it is broken.
>
> You're using it correctly, but it isn't broken for me.
>
> > As I understand it, git-log should just print out the log messages
> but
> > not the changes, whereas git-whatchanged will print out both.
>
> Well, in 1.3.0, "git log" can actually do both, and you can get the
> whatchanged output by just saying "git log -p".
>
> But yes, without the "-p", you should get just the log.
>
> And that's exactly what I get, both with current HEAD git, and with a
>
> v1.3.0 checkout.
>
> > test-log> git log
> > test-log>
> >
> > As you can see git log produces no output. I've tried it with
> other
> > options with the same result.
>
> Very strange indeed. Can you do
>
> git log > file
>
> to see if that changes (and see if the file contains anything)? The
> reason
> I mention that is that by default "git log" will start a pager for
> you,
> and if you somehow have a broken PAGER setup, I could imagine exactly
> the
> behaviour you see (although I don't see why "git whatchanged" would
> work
> either, in that case).
Yes, this is the problem. It works when I send it to a file. It seems
to be that having any extra options my PAGER command that messes it up
(see below). If get-log was a shell script I would imagine that some
quotes are missing:-)
Bob
test-log> export PAGER='more'
test-log> git log
commit 9a4d7602fff052b6796c2862edddd11ae2e45d08
Author: Bob Portmann <portmann@removed>
Date: Fri Apr 21 10:56:11 2006 -0600
Two line hello
commit a38306518c5e5e8eb630c02a47bec2a9fc292025
Author: Bob Portmann <portmann@removed>
Date: Fri Apr 21 10:55:44 2006 -0600
One line hello
test-log> export PAGER='more -i'
test-log> git log
test-log>
Adding the option -i (which should do nothing) has eliminated the
output.
> Finally, if that doesn't output anything either, please do (for just
> that
> small repository, so that the trace is also small)
>
> strace -o git-trace git log > /dev/null
>
> and send out the result. Again, for PAGER reasons, that "> /dev/null"
> is
> actually important, because we don't want to trigger the pager code.
>
> Linus
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 18:48 ` Bob Portmann
@ 2006-04-21 18:58 ` Paolo Ciarrocchi
2006-04-21 19:13 ` Bob Portmann
2006-04-21 19:18 ` Linus Torvalds
1 sibling, 1 reply; 10+ messages in thread
From: Paolo Ciarrocchi @ 2006-04-21 18:58 UTC (permalink / raw)
To: Bob Portmann; +Cc: Linus Torvalds, Git Mailing List
On 4/21/06, Bob Portmann <bportmann@yahoo.com> wrote:
[...]
> test-log> export PAGER='more -i'
> test-log> git log
> test-log>
>
> Adding the option -i (which should do nothing) has eliminated the
> output.
Well, on my machine:
paolo@Italia:~/gkernel$ more -i
more: unknown option "-i"
usage: more [-dflpcsu] [+linenum | +/pattern] name1 name2 ...
Ciao,
--
Paolo
http://paolociarrocchi.googlepages.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 18:58 ` Paolo Ciarrocchi
@ 2006-04-21 19:13 ` Bob Portmann
0 siblings, 0 replies; 10+ messages in thread
From: Bob Portmann @ 2006-04-21 19:13 UTC (permalink / raw)
To: Paolo Ciarrocchi; +Cc: Linus Torvalds, Git Mailing List
--- Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com> wrote:
> On 4/21/06, Bob Portmann <bportmann@yahoo.com> wrote:
> [...]
> > test-log> export PAGER='more -i'
> > test-log> git log
> > test-log>
> >
> > Adding the option -i (which should do nothing) has eliminated the
> > output.
>
> Well, on my machine:
> paolo@Italia:~/gkernel$ more -i
> more: unknown option "-i"
> usage: more [-dflpcsu] [+linenum | +/pattern] name1 name2 ...
Well, then try an option that does work. On my system less and more
are essentially the same and -i just causes it to ignore case on
searches. The PAGER is automatically setup to 'less -XRse' on my
system (not sure why). Changing it to 'more' makes git-log work, but
it should work with 'less -XRse' as well since that works with other
commands on the system (e.g. man) and git-whatchanged as well.
Bob
> Ciao,
> --
> Paolo
> http://paolociarrocchi.googlepages.com
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 18:48 ` Bob Portmann
2006-04-21 18:58 ` Paolo Ciarrocchi
@ 2006-04-21 19:18 ` Linus Torvalds
2006-04-21 19:25 ` Linus Torvalds
1 sibling, 1 reply; 10+ messages in thread
From: Linus Torvalds @ 2006-04-21 19:18 UTC (permalink / raw)
To: Bob Portmann, Junio C Hamano; +Cc: Git Mailing List
On Fri, 21 Apr 2006, Bob Portmann wrote:
>
> Yes, this is the problem. It works when I send it to a file. It seems
> to be that having any extra options my PAGER command that messes it up
> (see below). If get-log was a shell script I would imagine that some
> quotes are missing:-)
It's the other way around: it's got "too much" quoting.
"git log" will literally _execute_ the PAGER environment, not pass it to a
shell, and not interpret any arguments.
So it will look for a program called "more -i" (space and all), and no
such program exists, so the execve fails, and git log ends up being
silent.
This patch would have made things a lot more obvious.
Junio?
Linus
---
diff --git a/pager.c b/pager.c
index b063353..9204641 100644
--- a/pager.c
+++ b/pager.c
@@ -47,5 +47,6 @@ void setup_pager(void)
setenv("LESS", "-S", 0);
run_pager(pager);
+ die("unable to execute pager '%s'", pager);
exit(255);
}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 19:18 ` Linus Torvalds
@ 2006-04-21 19:25 ` Linus Torvalds
2006-04-21 19:38 ` Bob Portmann
2006-04-21 20:05 ` Junio C Hamano
0 siblings, 2 replies; 10+ messages in thread
From: Linus Torvalds @ 2006-04-21 19:25 UTC (permalink / raw)
To: Bob Portmann, Junio C Hamano; +Cc: Git Mailing List
On Fri, 21 Apr 2006, Linus Torvalds wrote:
>
> This patch would have made things a lot more obvious.
Actually, scratch that one, and use this one instead. Much better, and
actually allows Bob's crazy PAGER environment variable to work, rather
than just reporting an error about it.
Linus
---
diff --git a/pager.c b/pager.c
index b063353..9a30939 100644
--- a/pager.c
+++ b/pager.c
@@ -8,6 +8,7 @@ #include "cache.h"
static void run_pager(const char *pager)
{
execlp(pager, pager, NULL);
+ execl("/bin/sh", "sh", "-c", pager, NULL);
}
void setup_pager(void)
@@ -47,5 +48,6 @@ void setup_pager(void)
setenv("LESS", "-S", 0);
run_pager(pager);
+ die("unable to execute pager '%s'", pager);
exit(255);
}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 19:25 ` Linus Torvalds
@ 2006-04-21 19:38 ` Bob Portmann
2006-04-21 20:05 ` Junio C Hamano
1 sibling, 0 replies; 10+ messages in thread
From: Bob Portmann @ 2006-04-21 19:38 UTC (permalink / raw)
To: Linus Torvalds, Junio C Hamano; +Cc: Git Mailing List
Yes, that fixes it, even with the crazy PAGER (which is going to be
plain 'more' from now on:-)
Thanks,
Bob
--- Linus Torvalds <torvalds@osdl.org> wrote:
> On Fri, 21 Apr 2006, Linus Torvalds wrote:
> >
> > This patch would have made things a lot more obvious.
>
> Actually, scratch that one, and use this one instead. Much better,
> and
> actually allows Bob's crazy PAGER environment variable to work,
> rather
> than just reporting an error about it.
>
> Linus
> ---
> diff --git a/pager.c b/pager.c
> index b063353..9a30939 100644
> --- a/pager.c
> +++ b/pager.c
> @@ -8,6 +8,7 @@ #include "cache.h"
> static void run_pager(const char *pager)
> {
> execlp(pager, pager, NULL);
> + execl("/bin/sh", "sh", "-c", pager, NULL);
> }
>
> void setup_pager(void)
> @@ -47,5 +48,6 @@ void setup_pager(void)
>
> setenv("LESS", "-S", 0);
> run_pager(pager);
> + die("unable to execute pager '%s'", pager);
> exit(255);
> }
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 19:25 ` Linus Torvalds
2006-04-21 19:38 ` Bob Portmann
@ 2006-04-21 20:05 ` Junio C Hamano
2006-04-21 20:25 ` Linus Torvalds
1 sibling, 1 reply; 10+ messages in thread
From: Junio C Hamano @ 2006-04-21 20:05 UTC (permalink / raw)
To: Linus Torvalds; +Cc: git
Linus Torvalds <torvalds@osdl.org> writes:
> On Fri, 21 Apr 2006, Linus Torvalds wrote:
>>
>> This patch would have made things a lot more obvious.
>
> Actually, scratch that one, and use this one instead. Much better, and
> actually allows Bob's crazy PAGER environment variable to work, rather
> than just reporting an error about it.
Agreed, this is much better than just punting. Sign-off?
BTW: The extended extended SHA1 is a great addition. I do not
usually have contrib/colordiff checked out (it is in "pu", not
in "next"), but I can easily do:
git tar-tree pu:contrib/colordiff colordiff | tar xf -
Of course "git tar-tree pu | tar xf - contrib/colordiff" would
work for this particular case, but that is besides the point.
BTW: Allow me to try "git fmt-patch -1" ;-).
-- >8 --
From 34fd1c9ac5845d541e3196983df7f993e751b544 Thu Apr 7 15:13:13 2005
From: Linus Torvalds <torvalds@osdl.org>
Date: Fri Apr 21 12:25:13 2006 -0700
Subject: git-log produces no output
When $PAGER is set to 'less -i', we used to fail because we
assumed the $PAGER is a command and simply exec'ed it.
Try exec first, and then run it through shell if it fails. This
allows even funkier PAGERs like these ;-):
PAGER='sed -e "s/^/`date`: /" | more'
PAGER='contrib/colordiff.perl | less -RS'
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
| 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
--git a/pager.c b/pager.c
index e5ba273..f7b8e78 100644
--- a/pager.c
+++ b/pager.c
@@ -8,6 +8,7 @@ #include "cache.h"
static void run_pager(const char *pager)
{
execlp(pager, pager, NULL);
+ execl("/bin/sh", "sh", "-c", pager, NULL);
}
void setup_pager(void)
@@ -47,5 +48,6 @@ void setup_pager(void)
setenv("LESS", "-S", 0);
run_pager(pager);
+ die("unable to execute pager '%s'", pager);
exit(255);
}
--
1.3.0.gd1e3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: git-log produces no output
2006-04-21 20:05 ` Junio C Hamano
@ 2006-04-21 20:25 ` Linus Torvalds
0 siblings, 0 replies; 10+ messages in thread
From: Linus Torvalds @ 2006-04-21 20:25 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Fri, 21 Apr 2006, Junio C Hamano wrote:
>
> Linus Torvalds <torvalds@osdl.org> writes:
>
> > On Fri, 21 Apr 2006, Linus Torvalds wrote:
> >>
> >> This patch would have made things a lot more obvious.
> >
> > Actually, scratch that one, and use this one instead. Much better, and
> > actually allows Bob's crazy PAGER environment variable to work, rather
> > than just reporting an error about it.
>
> Agreed, this is much better than just punting. Sign-off?
Yup, you can just go wild with the
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
lines. My employment contract requires that everything I produce is open
source ;)
> BTW: The extended extended SHA1 is a great addition. I do not
> usually have contrib/colordiff checked out (it is in "pu", not
> in "next"), but I can easily do:
>
> git tar-tree pu:contrib/colordiff colordiff | tar xf -
Ahh, yes. That is one situation where a sub-tree SHA1 makes more sense
than most (the fact that it works with "git diff" and directory renames is
likely more of a curiosity than anything widely useful, I think)
> BTW: Allow me to try "git fmt-patch -1" ;-).
Looks good to me.
Linus
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-04-21 20:25 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-21 17:20 git-log produces no output Bob Portmann
2006-04-21 18:11 ` Linus Torvalds
2006-04-21 18:48 ` Bob Portmann
2006-04-21 18:58 ` Paolo Ciarrocchi
2006-04-21 19:13 ` Bob Portmann
2006-04-21 19:18 ` Linus Torvalds
2006-04-21 19:25 ` Linus Torvalds
2006-04-21 19:38 ` Bob Portmann
2006-04-21 20:05 ` Junio C Hamano
2006-04-21 20:25 ` Linus Torvalds
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).