Hi, On Mon, 30 Jan 2006, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > >> > - disallow fetching from this repo, and > >> > >> Why? It's perfectly acceptable to pull from an incomplete > >> repo, as long as you don't care about the old history. > > > > Right. But should that be the default? I don't think so. Therefore: > > disable it, and if the user is absolutely sure to do dumb things, she'll > > have to enable it explicitely. > > If the downstream person wants to have a shallow history of post > X.org X server core to further hack on it, I do not think of a > reason why we would want to refuse her from cloning a repository > of a fellow developer who has already done such a shallow copy. Okay. But in their case, they'll probably do what was done with Linux: start afresh. If you want to have the old history, you can import it and merge it via a graft. > If such a clone is done without telling the downstream that the > result is a shallow one, it is "dumb". I would agree it should > not be done. That was my point. As long as you don't make sure the client handles the shallow upstream gracefully, it is dangerous. At the moment, there are too many code parts relying on the completeness of the repository (local and remote). Since I wrote this, I realized that the problem I saw is not limited to shallow upstream, but there is a subtle issue with shallow downstreams, too: Just imagine this: Alice starts a project, Bob makes a shallow copy from it when Alice just reverted an experimental feature. Then, Alice decides the experimental feature was not bad at all and reverts the revert. Bob pulls from Alice: Alice's upload-pack assumes Bob already has the original files (now re-reverted), and Bob ends up with a broken repository. While writing the last paragraph, it became clear to me that the shallow thing is very fragile: IMHO it is impossible to be fully backwards compatible (remember: you should not force anybody to upgrade). > By the way, please refrain from discussing .git/config vs > .git/eparate-config-files issue in this thread. Okay. I will shut up on that issue. > My personal feeling so far is that the information current graft > represents is good enough to support shallow clones, and if not we can > extend its semantics to support such. No. The grafts are more powerful. I have quite a few repos here in which I heavily work with grafts, and they are no cutoffs for shallow repos. They are hard links between different lines of development. For example, I use them to map merges in cvsimported projects, thus fixing a shortcoming of CVS. Also, you can "add" history. If you now rely on the grafts file to determine what was a cutoff, you may well end up with bogus cutoffs. Ciao, Dscho - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Tue Jan 31 22:29:18 2006
This archive was generated by hypermail 2.1.8 : 2006-01-31 22:29:28 EST