Re: [PATCH] Make git-prune submodule aware (and fix a SEGFAULT in the process)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes:

> 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?
>
> ---
>  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)


This sounds very plausible.

Andy, in the repository your fetch fails, if a fetch-pack
without "--thin" before Linus's patch does not barf, that
strongly suggests that the breakage you are seeing is related to
this codepath.  And with Linus's patch, "fetch-pack --thin"
would also be fixed.

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux