Re: [PATCH] Make git-prune submodule aware (and fix a SEGFAULT in the process)
On Fri, 17 Aug 2007, Andy Parkins wrote:
Show 11 quoted lines
>
> 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)