Subject: Re: [PATCH 3/3] {fetch,upload}-pack: allow --depth=0 to deepen into full repo again

From: Jakub Narebski <[email-masked]>
Date: Fri, 20 Aug 2010 11:22:08 +0200

On Fri, Aug 20, 2010, Nguyen Thai Ngoc Duy wrote:
> On Fri, Aug 20, 2010 at 7:22 AM, Jakub Narebski <[email-masked]> wrote:
>> Nguyễn Thái Ngọc Duy  <[email-masked]> writes:
>>
>>> Signed-off-by: Nguyễn Thái Ngọc Duy <[email-masked]>
>>> ---
>>>  The funny thing is, even with --depth=0, I still have two commit grafts
>>>  in $GIT_DIR/shallow, which are grafts of tags. I think there is a bug
>>> somewhere..
>>>
>>>  builtin/fetch-pack.c |    2 +-
>>>  shallow.c            |    2 +-
>>>  upload-pack.c        |    8 ++++----
>>>  3 files changed, 6 insertions(+), 6 deletions(-)
>>>
>>
>> Fist, it lacks documentation update that --depth=0 means infinite
>> depth (making repository not-shallow).
> 
> Yeah. I would do documentation and tests later once I figured out why
> --depth=0 did not give me full repo. It turns out I need --tags to
> (refetch?) tags and have full repo.

Perhaps --depth=0 should also work as if --tags were specified on
command line?  BTW. shouldn't git fetch tags that point to commits
that got doenloaded because of deepening the clone?

> 
>> Second, it would be nice (though probably not easy with parseopt, as
>> it would require hacks/extensions) to be able to use --depth=inf
>> (like wget supports '-l inf') to mean infinite depth...
> 
> Hmm.. make --depth a string parameter and fetch-pack should parse the
> parameter itself, like git-clone. Good idea.

If there were more options that use <n> == 0 to actually mean unlimited
(infinity), perhaps it would be better to extend parseopt to provide for
such situation, e.g. OPT_INT_INF or something.  This way we would avoid
code duplication.

... oh, wait, the newly introduced[1] git-merge `--log-limit' option
uses --log-limit=0 to mean unlimited.

[1] http://permalink.gmane.org/gmane.comp.version-control.git/153984
    Message-ID: <20100820081641.GA32127@burratino>
    Subject: Re: wishlist bugreport: make limit configurable for do_fmt_merge_msg (merge.log)

-- 
Jakub Narebski
Poland