threads / discuss / 28624

unexpected behavior with `git log --skip filename`

Subject: unexpected behavior with `git log --skip filename`

## tl;dr

4 messages between Oct 7, 2011 and Oct 8, 2011.

replies: 3people: 2as markdown or json

Andrew McNabb· Oct 7, 2011, 17:15 UTC · lore

The "--skip" option to "git log" did not behave as I expected, but I'm not sure whether this was user error, unclear documentation, or a bug. Specifically, I ran the following, intending to find the previous revision of a given file:

git log --skip=1 -n 1 --oneline some-filename
My expectation was that this would behave the same as:
git log -n 2 --oneline some-filename |tail -n 1

Instead, the --skip=1 parameter seemed to be ignored. After I tried several different values, it appears that the commits are skipped before path matching with "some-filename".

Is this the intended behavior? If so, should the documentation be clarified by changing "Note that they are applied before commit ordering and formatting options, such as --reverse" to something like "Note that they are applied before path matching, commit ordering, and formatting options, such as --reverse"?

-- Andrew McNabb http://www.mcnabbs.org/andrew/ PGP Fingerprint: 8A17 B57C 6879 1863 DE55 8012 AB4D 6098 8826 6868

Jay Soffian· Oct 7, 2011, 21:54 UTC · re: Andrew McNabb · lore

Re: unexpected behavior with `git log --skip filename`

On Fri, Oct 7, 2011 at 1:15 PM, Andrew McNabb <amcnabb@mcnabbs.org> wrote:
Show 14 quoted lines
> The "--skip" option to "git log" did not behave as I expected, but I'm
> not sure whether this was user error, unclear documentation, or a bug.
> Specifically, I ran the following, intending to find the previous
> revision of a given file:
>
> git log --skip=1 -n 1 --oneline some-filename
>
> My expectation was that this would behave the same as:
>
> git log -n 2 --oneline some-filename |tail -n 1
>
> Instead, the --skip=1 parameter seemed to be ignored.  After I tried
> several different values, it appears that the commits are skipped before
> path matching with "some-filename".
Hmm:

$ git log --oneline GIT-VERSION-GEN | head -2 7f41b6bbe3 Post 1.7.7 first wave 703f05ad58 Git 1.7.7

$ git log --oneline --skip=1 -n 1 GIT-VERSION-GEN 703f05ad58 Git 1.7.7

j.
Andrew McNabb· Oct 8, 2011, 02:36 UTC · re: Jay Soffian · lore

Re: unexpected behavior with `git log --skip filename`

On Fri, Oct 07, 2011 at 05:54:36PM -0400, Jay Soffian wrote:
Show 9 quoted lines
> 
> Hmm:
> 
> $ git log --oneline GIT-VERSION-GEN | head -2
> 7f41b6bbe3 Post 1.7.7 first wave
> 703f05ad58 Git 1.7.7
> 
> $ git log --oneline --skip=1 -n 1 GIT-VERSION-GEN
> 703f05ad58 Git 1.7.7

I went back to reproduce this, and I think I may have been using the --follow option earlier. In my private repository, git log gives identical output for the last two commits when I don't specify --skip:

$ git log -n 2 --oneline httpd.conf.orig f0026e9 updated many of the *.orig files to the latest version e57e840 moved the .orig files into place, too $ git log --follow -n 2 --oneline httpd.conf.orig f0026e9 updated many of the *.orig files to the latest version e57e840 moved the .orig files into place, too $

But when I specify --skip=1, the output is different:

$ git log -n 1 --skip=1 --oneline httpd.conf.orig e57e840 moved the .orig files into place, too $ git log --follow -n 1 --skip=1 --oneline httpd.conf.orig f0026e9 updated many of the *.orig files to the latest version $

GIT-VERSION-GEN example that you shared, I don't notice this difference. It's not immediately obvious to me what's different between the two examples.

-- Andrew McNabb http://www.mcnabbs.org/andrew/ PGP Fingerprint: 8A17 B57C 6879 1863 DE55 8012 AB4D 6098 8826 6868

Jay Soffian· Oct 8, 2011, 17:47 UTC · re: Andrew McNabb · lore

Re: unexpected behavior with `git log --skip filename`

On Fri, Oct 7, 2011 at 10:36 PM, Andrew McNabb <amcnabb@mcnabbs.org> wrote:
> I went back to reproduce this, and I think I may have been using the
> --follow option earlier.

--follow is, er, special. It doesn't combine well with other rev-list options. You'll have to search this list for details. Sorry I can't provide more info. :-(

j.

← back to recent threads