3

On the following server:

gsl@aragorn:~/gitTest> uname -a
Linux aragorn 2.6.31.12-0.2-default #1 SMP 2010-03-16 21:25:39 +0100 i686 i686 i386 GNU/Linux

gsl@aragorn:~/gitTest> cat /etc/SuSE-release

openSUSE 11.2 (i586)
VERSION = 11.2

I use the following git:

gsl@aragorn:~/gitTest> git --version

git version 1.7.2.2

I get (with a bash alias of gitnp='git --no-pager'):

(1)

gsl@aragorn:~/gitTest> gitnp log --pretty=oneline junk.txt
500e8791578c5baf7a139d4997841769a995ac6b mod of junk and junk3
594ceed7a0fb35a860a6e2cb913d5398f09a861f 1st mod junk.txt
df271b2ebd5801bd8d827b0630577cad51c40896 initial junk.txt

(2)

gsl@aragorn:~/gitTest> gitnp log --follow --pretty=oneline junk.txt
500e8791578c5baf7a139d4997841769a995ac6b mod of junk and junk3
594ceed7a0fb35a860a6e2cb913d5398f09a861f 1st mod junk.txt
df271b2ebd5801bd8d827b0630577cad51c40896 initial junk.txt

(3)

gsl@aragorn:~/gitTest> gitnp log -2 --follow --pretty=oneline junk.txt
500e8791578c5baf7a139d4997841769a995ac6b mod of junk and junk3

(4)

gsl@aragorn:~/gitTest> gitnp log -2 --pretty=oneline junk.txt
500e8791578c5baf7a139d4997841769a995ac6b mod of junk and junk3
594ceed7a0fb35a860a6e2cb913d5398f09a861f 1st mod junk.txt

Why don't I see 2 output lines for item (3) above?

-=> Gregg <=-


I upgraded to the latest and greatest, but still have the same problem:

gsl@aragorn:~/gitTest> git --version

git version 1.7.2.3

gsl@aragorn:~/gitTest> gitnp log -2 --follow --pretty=oneline junk.txt 500e8791578c5baf7a139d4997841769a995ac6b mod of junk and junk3

gsl@aragorn:~/gitTest> gitnp log --follow --pretty=oneline junk.txt 500e8791578c5baf7a139d4997841769a995ac6b mod of junk and junk3 594ceed7a0fb35a860a6e2cb913d5398f09a861f 1st mod junk.txt df271b2ebd5801bd8d827b0630577cad51c40896 initial junk.txt

So is there another non-graphical reliable git way to obtain this information?

Tim Post
  • 33,371
  • 15
  • 110
  • 174
Gregg Leichtman
  • 131
  • 1
  • 4

1 Answers1

2

Did you try with git1.7.2.3?

  • "git log --follow -M -p" was seriously broken in 1.7.2, reporting assertion failure.

  • Running "git log" with an incorrect option started pager nevertheless, forcing the user to dismiss it.

I am not sure why the combination of '--follow -2' would limit the output to only one line.
It is however interesting to read what Linux has to say when --follow was introduced:

--follow is a total hack, meant to just satisfy ex-SVN users who never knew anything about things like parenthood or nice revision graphs anyway.

It's not totally fundamental, but the current implementation of "--follow" is really a quick preprocessing thing bolted onto the revision walking logic, rather than being anything really integral.

It literally was designed as a "SVN noob" pleaser, not as a "real git functionality" thing.
The idea was that you'd get away from the (broken) mindset of thinking that renames matter in the big picture.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Ok, so it is probably not a completely reliable feature at this time. I see the gitk -- path1 path2 approach mentioned by Linus, but is there another non-graphical git way to walk the tree across renames? – Gregg Leichtman Sep 06 '10 at 11:02
  • @Gregg: none that comes into mind right now (except plumbing commands like `git rev-list`) – VonC Sep 06 '10 at 12:07