Junio C Hamano <gitster@xxxxxxxxx> writes: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > >> Currently, that logic pretends that a commit whose parent >> commit is missing is a root commit (and likewise merge commits >> with missing parent commits are handled incorrectly, too). >> However, for the purpose of `--update-shallow` that is exactly >> what we need to do (and only then). > > I suspect that what made it harder to follow in the original > construct is that we called the behaviour "incorrect" upfront and > then come back with "that incorrectness is what we want". I wonder > if it makes it easier to follow by flipping them around. > > For the purpose of `--update-shallow`, when some of the parent > commits of a commit are missing from the repository, we need to > treat as if the parents of the commit are only the ones that do > exist in the repository and these missing commits have no > ancestry relationship with it. If all its parent commits are > missing, the commit needs to be treated as if it were a root > commit. > > Add a flag to optionally ask for such a behaviour, while > detecting missing objects as a repository corruption error by > default ... > > or something? At least to me this is more understandable. Dirk