X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=upload-pack.c;h=7c05b15e68d6deed45a172df397e814fcf2032b0;hb=260adc87b3d6c00650ba2dd493abd9a6603ca4f1;hp=95d83135ae95b2fa7980c69cbd7b49e3a6ff2d0a;hpb=55599ac1043672c4dd1cde175a11ca129334b84f;p=git.git diff --git a/upload-pack.c b/upload-pack.c index 95d83135a..7c05b15e6 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -672,10 +672,17 @@ static void receive_needs(void) if (depth == 0 && shallows.nr == 0) return; if (depth > 0) { - struct commit_list *result, *backup; + struct commit_list *result = NULL, *backup = NULL; int i; - backup = result = get_shallow_commits(&want_obj, depth, - SHALLOW, NOT_SHALLOW); + if (depth == INFINITE_DEPTH) + for (i = 0; i < shallows.nr; i++) { + struct object *object = shallows.objects[i].item; + object->flags |= NOT_SHALLOW; + } + else + backup = result = + get_shallow_commits(&want_obj, depth, + SHALLOW, NOT_SHALLOW); while (result) { struct object *object = &result->item->object; if (!(object->flags & (CLIENT_SHALLOW|NOT_SHALLOW))) {