Re: [RFC] shallow clone
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:17
Simon Richter [off-list ref] writes:
quoted
- disallow fetching from this repo, andWhy? It's perfectly acceptable to pull from an incomplete repo, as long as you don't care about the old history.
I agree. As long as the cloned one can record itself as a shallow one (and with what epochs), I do not see a reason to forbid second generation clone from a shallow repository.
Hrm, I think there should also be a way to shrink a repo and "forget" old history occasionally (obviously, use of that feature would be highly discouraged).
I do not think of a reason to discourage it, and I think you can do the "forgetting" part with the current set of tools. Choose appropriate cauterizing points, set up info/grafts and running "repack -a -d" would be sufficient.
IMO, it may be a lot more robust to just have a list of "cutoff" object ids in .git/shallow instead of messing with grafts here, as adding or removing a line from that file is an easier thing to do for porcelain (or by hand) than rewriting the grafts file. Whether that list would be inclusive or exclusive would need to be decided still.
I would rather not to have .git/shallow nor .git/shallow_start. Cauterizing is not any more special than other grafts entries. If you have grafted historical kernel repository behind the official kernel repository with 2.6.12-rc2 epoch, I do not think of any reason to forbid people from cloning such with the grafts.