threads / bug / 38820

Bug in git-verify-pack or in its documentation?

Subject: Bug in git-verify-pack or in its documentation?

## tl;dr

5 messages between Mar 16, 2015 and Mar 19, 2015.

replies: 4people: 3as markdown or json

Mike Hommey· Mar 16, 2015, 08:05 UTC · lore
Hi,
git-verify-pack's man page says the following about --stat-only:
   Do not verify the pack contents; only show the histogram of delta
   chain length. With --verbose, list of objects is also shown.

However, there is no difference of output between --verbose and --verbose --stat-only (and in fact, looking at the code, only one of them has an effect, --stat-only having precedence).

The text above also implies that this should only display the stats without doing any sha1 validation, but afaict from a quick glance at the index-pack code, they are always performed.

Is it an implementation problem or a documentation problem?
Cheers,
Mike
Duy Nguyen· Mar 16, 2015, 10:13 UTC · re: Mike Hommey · lore

Re: Bug in git-verify-pack or in its documentation?

On Mon, Mar 16, 2015 at 3:05 PM, Mike Hommey <mh@glandium.org> wrote:
Show 10 quoted lines
> Hi,
>
> git-verify-pack's man page says the following about --stat-only:
>
>    Do not verify the pack contents; only show the histogram of delta
>    chain length. With --verbose, list of objects is also shown.
>
> However, there is no difference of output between --verbose and
> --verbose --stat-only (and in fact, looking at the code, only one of
> them has an effect, --stat-only having precedence).

There is. very-pack --verbose would show a lot of "<sha-1> <type> <"random" numbers>" lines before the histogram while --stat-only (with or without --verbose) would only show the histogram.

Show 5 quoted lines
> The text above also implies that this should only display the stats
> without doing any sha1 validation, but afaict from a quick glance at
> the index-pack code, they are always performed.
>
> Is it an implementation problem or a documentation problem?

I think code and document start to divert from 3de89c9 (verify-pack: use index-pack --verify - 2011-06-03). The conversion to using index-pack implies heavier verification anyway (all objects must be hashed, no way around it), so I'd say it's documentation problem. The other way would be revert some patches in verify-pack.c and add more maintenance burden for this command.

-- 
Duy
Mike Hommey· Mar 16, 2015, 13:18 UTC · re: Duy Nguyen · lore

Re: Bug in git-verify-pack or in its documentation?

On Mon, Mar 16, 2015 at 05:13:25PM +0700, Duy Nguyen wrote:
Show 15 quoted lines
> On Mon, Mar 16, 2015 at 3:05 PM, Mike Hommey <mh@glandium.org> wrote:
> > Hi,
> >
> > git-verify-pack's man page says the following about --stat-only:
> >
> >    Do not verify the pack contents; only show the histogram of delta
> >    chain length. With --verbose, list of objects is also shown.
> >
> > However, there is no difference of output between --verbose and
> > --verbose --stat-only (and in fact, looking at the code, only one of
> > them has an effect, --stat-only having precedence).
> 
> There is. very-pack --verbose would show a lot of "<sha-1> <type>
> <"random" numbers>" lines before the histogram while --stat-only (with
> or without --verbose) would only show the histogram.
Err, I meant between --stat-only and --verbose --stat-only.
Mike
Duy Nguyen· Mar 18, 2015, 12:31 UTC · re: Mike Hommey · lore

Re: Bug in git-verify-pack or in its documentation?

On Mon, Mar 16, 2015 at 8:18 PM, Mike Hommey <mh@glandium.org> wrote:
Show 18 quoted lines
> On Mon, Mar 16, 2015 at 05:13:25PM +0700, Duy Nguyen wrote:
>> On Mon, Mar 16, 2015 at 3:05 PM, Mike Hommey <mh@glandium.org> wrote:
>> > Hi,
>> >
>> > git-verify-pack's man page says the following about --stat-only:
>> >
>> >    Do not verify the pack contents; only show the histogram of delta
>> >    chain length. With --verbose, list of objects is also shown.
>> >
>> > However, there is no difference of output between --verbose and
>> > --verbose --stat-only (and in fact, looking at the code, only one of
>> > them has an effect, --stat-only having precedence).
>>
>> There is. very-pack --verbose would show a lot of "<sha-1> <type>
>> <"random" numbers>" lines before the histogram while --stat-only (with
>> or without --verbose) would only show the histogram.
>
> Err, I meant between --stat-only and --verbose --stat-only.
Yeah --verbose is always ignored when --stat-only is set. This command is funny.
-- 
Duy
Junio C Hamano· Mar 19, 2015, 17:59 UTC · re: Duy Nguyen · lore

Re: Bug in git-verify-pack or in its documentation?

Duy Nguyen <pclouds@gmail.com> writes:
Show 21 quoted lines
> On Mon, Mar 16, 2015 at 8:18 PM, Mike Hommey <mh@glandium.org> wrote:
>> On Mon, Mar 16, 2015 at 05:13:25PM +0700, Duy Nguyen wrote:
>>> On Mon, Mar 16, 2015 at 3:05 PM, Mike Hommey <mh@glandium.org> wrote:
>>> > Hi,
>>> >
>>> > git-verify-pack's man page says the following about --stat-only:
>>> >
>>> >    Do not verify the pack contents; only show the histogram of delta
>>> >    chain length. With --verbose, list of objects is also shown.
>>> >
>>> > However, there is no difference of output between --verbose and
>>> > --verbose --stat-only (and in fact, looking at the code, only one of
>>> > them has an effect, --stat-only having precedence).
>>>
>>> There is. very-pack --verbose would show a lot of "<sha-1> <type>
>>> <"random" numbers>" lines before the histogram while --stat-only (with
>>> or without --verbose) would only show the histogram.
>>
>> Err, I meant between --stat-only and --verbose --stat-only.
>
> Yeah --verbose is always ignored when --stat-only is set. This command is funny.

I would disagree. "--verbose" is "do whatever you are told to do but you can enhance the result by giving more verbose output".

To understand what I mean, compare "git verify-pack" (no other options) and "git verify-pack --verbose".

Now, when you are asking the command to show the statistics only and nothing else, there may be nothing useful that you can output to enhance the "stat-only" output. "git verify-pack --stat-only" (no other options) and "git verify-pack --stat-only --verbose" can produce exactly the same result in such a case.

So I do not see anything funny there.

← back to recent threads