git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: On --depth=funny value

From
Duy Nguyen <pclouds@gmail.com>
Date
Jan 9, 2013, 14:12 UTC
Message-ID
<CACsJy8B4SFs5gbrD6vKvpcrv-tyUo+aZAvq=VmVFM1Bsiggu4w@mail.gmail.com>
In-Reply-To
<7vr4lv7x2u.fsf@alter.siamese.dyndns.org>
On Wed, Jan 9, 2013 at 12:19 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 25 quoted lines
> Duy Nguyen <pclouds@gmail.com> writes:
>
>> On Wed, Jan 9, 2013 at 9:53 AM, Junio C Hamano <gitster@pobox.com> wrote:
>> ...
>>>  * We would like to update "clone --depth=1" to end up with a tip
>>>    only repository, but let's not to touch "git fetch" (and "git
>>>    clone") and make them send 0 over the wire when the command line
>>>    tells them to use "--depth=1" (i.e. let's not do the "off-by-one"
>>>    thing).
>>
>> You can't anyway. Depth 0 on the wire is considered invalid by upload-pack.
>
> Yes, that is a good point that we say "if (0 < opt->depth) do the
> shallow thing" everywhere, so 0 is spcial in that sense.
>
> Which suggests that if we wanted to, we could update the fetch side
> to do the off-by-one thing against the current upload-pack when the
> given depth is two or more, and still send 1 when depth=1.  When
> talking with an updated upload-pack that advertises exact-shallow
> protocol extension, it can disable that off-by-one for all values of
> depth.  That way, the updated client gets history of wrong depth
> only for --depth=1 when talking with the current upload-pack; all
> other cases, it will get history of correct depth.
>
> Hmm?

I haven't checked because frankly I have never run JGit, but are we sure this off-by-one thing applies to JGit server as well? So far I'm only aware of three sever implementations: C Git, JGit and Dulwich. The last one does not support shallow extension so it's out of question.

-- 
Duy
Previous: Junio C HamanoNext: Duy Nguyen
Message 9 of 18 in “add warning for depth=0 in git clone.”
  1. add warning for depth=0 in git clone.Stefan Beller, Jan 8, 2013
  2. Stefan BellerJan 8, 2013
  3. Jonathan NiederJan 8, 2013
  4. Jonathan NiederJan 8, 2013
  5. Duy NguyenJan 9, 2013
  6. On --depth=funny valueJunio C Hamano, Jan 9, 2013
  7. Duy NguyenJan 9, 2013
  8. Junio C HamanoJan 9, 2013
  9. Duy NguyenJan 9, 2013
  10. Duy NguyenJan 9, 2013
  11. Stefan BellerJan 9, 2013
  12. 1/2 fetch, upload-pack: add --no-shallow for infinite depthNguyễn Thái Ngọc Duy, Jan 11, 2013
  13. 2/2 upload-pack: fix off-by-one depth calculation in shallow cloneNguyễn Thái Ngọc Duy, Jan 11, 2013
  14. Junio C HamanoJan 11, 2013
  15. Junio C HamanoJan 11, 2013
  16. 1/3 fetch: add --unshallow for turning shallow repo into complete oneNguyễn Thái Ngọc Duy, Jan 11, 2013
  17. 2/3 upload-pack: fix off-by-one depth calculation in shallow cloneNguyễn Thái Ngọc Duy, Jan 11, 2013
  18. 3/3 fetch: elaborate --depth actionNguyễn Thái Ngọc Duy, Jan 11, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.