On Fri, Dec 4, 2015 at 11:45 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Jeff King <peff@xxxxxxxx> writes: > >>> But why would fetching a tag (or set of tags) merit a depth of zero? >>> Doesn't depth 1 mean "give me the the objects, and none of their >>> descendants"? Why use 0? >> >> That comes from this line: >> >> transport_set_option(transport, TRANS_OPT_DEPTH, "0"); >> >> That line blame back to b888d61 (Make fetch a builtin, 2007-09-10), >> which isn't incredibly helpful. > > Hmm, "0" means "no depth limitations", which is exactly what we want > in this "unshallow" case, I would think. The behaviour observed is No depth 0 means "do not change depth", which is why Jeff saw no 'deepen' lines (and those lines should be rejected any way). It's equivalent of doing "git fetch" without --depth. > just like a regular fetch that auto-follows tags, where it has to > make a second fetch if the primary fetch fails to include everything > that is needed for propagating the tag for whatever reason. > > Having said that, IIRC, these days a depth limited clone is created > implicitly with --single-branch option, and I am not sure what the > right behaviour for the auto-following of tags in such a repository. I suppose followtags feature has been around long enough that we can simply trust that and skip the second fetch? But it's not that easy for subsequent fetches after the initial fetch in git-clone, because we no longer know if --single-branch was used (of if there is any new branch fetched since). -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html