Junio C Hamano [off-list ref] writes:
Well spotted. It would be a good idea to commit the big comment
from contrib/examples/git-fetch.sh to fetch_local_nocopy()
function, which would have made us realize that the patch does
not refrain from applying this optimization even when shallow
is in effect. But I think that is actually a good change.
I take this back. This regresses badly.
Why?
Because the optimization is useless when we are trying to deepen
the shallow history. When you are trying to deepen a shallow
history and the tips of remotes haven't moved since you fetched
from there the last time, you have everything near the tip, and
becuse your history is shallow, your ancestry chain is
cauterized to make it appear that the history is complete. The
rev-list reachability test would not fail as we expect.
The breakage can be seen with t5500.
Junio C Hamano [off-list ref] wrote:
Junio C Hamano [off-list ref] writes:
quoted
Well spotted. It would be a good idea to commit the big comment
from contrib/examples/git-fetch.sh to fetch_local_nocopy()
function, which would have made us realize that the patch does
not refrain from applying this optimization even when shallow
is in effect. But I think that is actually a good change.
I take this back. This regresses badly.
Why?
Whoops. Good catch. This is why you had a check for the shallow
history file in git-fetch.sh before you took this optimization path.
My fault for not including it in this patch.
Because the optimization is useless when we are trying to deepen
the shallow history. When you are trying to deepen a shallow
history and the tips of remotes haven't moved since you fetched
from there the last time, you have everything near the tip, and
becuse your history is shallow, your ancestry chain is
cauterized to make it appear that the history is complete. The
rev-list reachability test would not fail as we expect.
What about just inserting a check to see if --depth was supplied
to git-fetch on the command line? If so then we are deepening the
history and we just bypass the rev-list "fast path" test.
I will be posting an updated patch (series now) shortly.
--
Shawn.