From: Linus Torvalds Date: Fri, 17 Aug 2007 16:56:54 GMT Subject: Re: [PATCH] Make git-prune submodule aware (and fix a SEGFAULT in the process) Message-ID: In-Reply-To: <200708170939.47214.andyparkins@gmail.com> On Fri, 17 Aug 2007, Andy Parkins wrote: > > Could any of the guru's give me a guide to upload-pack.c? I assume the > problem is going to be the same as it was for git-prune, the hash for the > gitlink object in the tree is being assumed to be an object in the ODB; > which isn't the case with gitlink entries. Where would that be happening > in git-upload-pack? The fix is going to be.. > > if( S_ISGITLINK(mode)) > continue; > > But I've got no idea where to put it :-) Maybe this one? Linus --- builtin-pack-objects.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 24926db..77481df 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -979,6 +979,8 @@ static void add_pbase_object(struct tree_desc *tree, int cmp; while (tree_entry(tree,&entry)) { + if (S_ISGITLINK(entry.mode)) + continue; cmp = tree_entry_len(entry.path, entry.sha1) != cmplen ? 1 : memcmp(name, entry.path, cmplen); if (cmp > 0)