Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > On Wed, 4 Mar 2009, Junio C Hamano wrote: > >> Isn't the rule more or less like: >> >> If your shallow repository's history does not extend long enough and >> the other repository forked before your truncated history, wyou cannot >> compute the common ancestor and you cannot push out. > > Exactly. Actually, come to think of it, it is a lot stronger than "cannot compute the common". The history may look like this: R---R---R / --R---R---X---X---S---S---S where S are the commits you have in your shallow repository, and R are the commits that exist in the repository that receives your push. Because your history is shallow, neither repository has 'X' that are the commits that need to exist in order to keep the history of recipient repository complete; the recipient is not shallow to begin with, and we do not want to make it shallow. If you cloned shallowly some time ago, worked without communicating with the other side while the other side progressed, *AND* if the other side's progress included a rewind & rebuild of the history, you would see a similar topology. The leftmost 'S' in the above picture might have been the tip of the branch when you shallowly cloned with depth 1, and since then the remote end may have discarded topmost three commits and have rebuilt its history that leads to the rightmost 'R'. In such a case pushing to the remote's HEAD will fail. -- 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