2011/10/7 Jeff King <peff@xxxxxxxx>: > I'm really just a bystander on this topic, and haven't given it too much > thought. But one stumbling block I see for narrow clone is how narrow > repositories will interact with object transfer from other repositories. > > For example, if I have a narrow git.git that omits Documentation, and I > do a "git fetch" from a non-narrow repository, then how do we tell the > non-narrow remote that we don't have blobs in Documentation, and that > they should not be used as delta bases for any objects that are sent? Pretty much how shallow cloned repos interacts. In shallow clone we send depth info. In narrow clone, we send width info, in terms of (restricted) pathspec. With pathspec (possibly plus exclude rules but this possibility is getting smaller), I can express "fetch this directory only", or "fetch this directory, but not this subdirectory (because I already have it)". We can prohibit certain use cases at client side just like shallow clone. > The current protocol relies on certain repository properties on the > remote end that narrow clone will violate. I don't see a way around that > without a protocol extension to communicate the narrowness. What will > that extension look like? Something like this http://thread.gmane.org/gmane.comp.version-control.git/155427/focus=155613 -- 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