threads / bug / 7765

Possible bug in --short option of git-rev-list

Subject: Possible bug in --short option of git-rev-list

## tl;dr

3 messages between Apr 21, 2007 and Apr 21, 2007.

replies: 2people: 2as markdown or json

Marco Costalba· Apr 21, 2007, 09:32 UTC · lore
>From git tree

$ git rev-parse v1.5.1.1 HEAD c5ec6d00eb063f547e314fdf8a1d8cf09472da6b 744747ef1d75c85fb3a1785cb08d36497128d3d3 $ git rev-parse --short v1.5.1.1 HEAD c5ec6d0 744747e fatal: Needed a single revision $

Output is correct, but at the end an (bogus?) error is reported an git-rev-parse command exits with error code.

Marco
Junio C Hamano· Apr 21, 2007, 09:34 UTC · re: Marco Costalba · lore

Re: Possible bug in --short option of git-rev-list

"Marco Costalba" <mcostalba@gmail.com> writes:
Show 13 quoted lines
> From git tree
>
> $ git rev-parse v1.5.1.1 HEAD
> c5ec6d00eb063f547e314fdf8a1d8cf09472da6b
> 744747ef1d75c85fb3a1785cb08d36497128d3d3
> $ git rev-parse --short v1.5.1.1 HEAD
> c5ec6d0
> 744747e
> fatal: Needed a single revision
> $
>
> Output is correct, but at the end an (bogus?) error is reported an
> git-rev-parse command exits with error code.
Short is abbrev + verify.  This is not new.
Marco Costalba· Apr 21, 2007, 10:03 UTC · re: Junio C Hamano · lore

Re: Possible bug in --short option of git-rev-list

On 4/21/07, Junio C Hamano <junkio@cox.net> wrote:
>
> Short is abbrev + verify.  This is not new.
>

In my implementation I pass command line arguments first to git-rev-parse, and the output of git-rev-parse is then used to feed git-rev-list, that starts loading of revisions.

The problem I found is that output of git-rev-parse could be veeery long, as example in git tree:

$ git rev-parse --all | wc
    144     144    5904

When running qgit --all on a repo with hundreds of tags this could lead to very long command line arguments for git-rev-list so to break platform limits. One idea to *hide* this problem was to get only the short version of a sha so to go from 40 to 7 chars and reduce command line size of about 6 times.

Of course the *real* solution would be to pass qgit command line arguments directly to git-rev-list and skip git-rev-parse altogether.

My question is: In case I skip git-rev-parse and feed directly git-rev-list with command line arguments, there is some compatibility break in current behaviour? In other words there are some command line arguments 'args' for whom

                              git-rev-list args != git rev-parse args
| git rev-list

Thanks Marco

← back to recent threads