Problem with --skip and --max-count

From: Govind Salinas <hidden>
Date: 2016-06-15 22:45:12

Hey Folks,

I have been working on my porcelain, trying to get it semi-polished and
I noticed that the behavior of --skip and --max-count is not what I expected
in several cases.

For simple output, it works as I think it should, but whenever you are doing
some kind of filtering or non-standard commit limiting, such as passing
--follow, it does not print out the first X results.  Similarly --skipping the
number of items that you got back does not put get you to where you left
off.

Basically, I am trying to use --skip and --max-count to do paging, but
when I add filters, it doesn't work very well.  For example...

$ git log --pretty=oneline --follow -- pyrite/git/repository.py | wc -l
103

$ git log --pretty=oneline --follow -20 -- pyrite/git/repository.py | wc -l
2

$ git log --pretty=oneline --follow -20 --skip=20 --
pyrite/git/repository.py | wc -l
2

So where I am trying to page by 20, I am only getting a random number of
commits depending on how many fit the criteria in the window.  I understand
this is probably by design, but it is not optimal to work with.  I had to
manually do the skipping and limiting, which would probably have been
more efficient if it had been done by git.  Would it be possible to get
git to limit and skip based on the number of results it had returned rather
than the number of result it had processed?  Even new cmd line args
would work.

I am using 1.6.0 BTW.

Thanks,
Govind
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help