From: Junio C Hamano Date: Fri, 17 Nov 2006 09:09:45 GMT Subject: Re: [PATCH 4/5] allow deepening of a shallow repository Message-ID: <7vy7qaqw12.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Johannes Schindelin writes: > Yes. Somehow, an important part of unregister_shallow() went missing (yet > another proof that my poor-man's-StGit does not always work). I think that > the "object->parsed = 0;" should go into unregister_shallow() like this: That does not fly so well. Your fetch-pack.c does this in find_common() and dropping the parsed flag inside unregister causes it to be parsed again later with its true parents, which defeats what the commented part of the code wanted to do. if (!lookup_object(sha1)) die("object not found: %s", line); /* make sure that it is parsed as shallow */ parse_object(sha1); if (unregister_shallow(sha1)) die("no shallow found: %s", line); continue; Although I am reasonably sure we can eventually make it work, it is very subtle and fragile -- somebody touching this code can easily break it. .