Code

fix simple deepening of a repo
authorNicolas Pitre <nico@cam.org>
Mon, 24 Aug 2009 04:04:09 +0000 (00:04 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 24 Aug 2009 22:03:56 +0000 (15:03 -0700)
commit86386829d425a3d3ae6ce713c58328607e50e523
treec35215adc859d0f68f854fa10debf2e1ebd63e78
parent57f6ec029090f64377ec5c0926b6e2e39b0caa4f
fix simple deepening of a repo

If all refs sent by the remote repo during a fetch are reachable
locally, then no further conversation is performed with the remote. This
check is skipped when the --depth argument is provided to allow the
deepening of a shallow clone which corresponding remote repo has no
changed.

However, some additional filtering was added in commit c29727d5 to
remove those refs which are equal on both sides.  If the remote repo has
not changed, then the list of refs to give the remote process becomes
empty and simply attempting to deepen a shallow repo always fails.

Let's stop being smart in that case and simply send the whole list over
when that condition is met.  The remote will do the right thing anyways.

Test cases for this issue are also provided.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5500-fetch-pack.sh
transport.c