Re: [RFC/PATCH v3] merge-base: teach "git merge-base" to accept more than 2 arguments

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

 



Le lundi 28 juillet 2008, Junio C Hamano a écrit :
> Christian Couder <chriscool@xxxxxxxxxxxxx> writes:
>
> > +static struct commit *get_commit_reference(const char *arg)
> > +{
> > +	unsigned char revkey[20];
> > +	if (get_sha1(arg, revkey))
> > +		die("Not a valid object name %s", arg);
> > +	return lookup_commit_reference(revkey);
> > +}
>
> This returns a NULL when you feed a tree to the command, and...
>
> >  int cmd_merge_base(int argc, const char **argv, const char *prefix)
> >  {
> > +	struct commit **rev;
> >  	int show_all = 0;
> > +	int rev_nr = 0;
> >
> >  	git_config(git_default_config, NULL);
> >
> > @@ -38,15 +48,18 @@ int cmd_merge_base(int argc, const char **argv,
> > const char *prefix) usage(merge_base_usage);
> >  		argc--; argv++;
> >  	}
> > +	if (argc < 3)
> >  		usage(merge_base_usage);
> > +
> > +	rev = xmalloc((argc - 1) * sizeof(*rev));
> > +
> > +	do {
> > +		struct commit *r = get_commit_reference(argv[1]);
> > +		if (!r)
> > +			return 1;
>
> ... the command silently exits with 1.

In "master" there is:

	rev1 = lookup_commit_reference(rev1key);
	rev2 = lookup_commit_reference(rev2key);
	if (!rev1 || !rev2)
		return 1;
	return show_merge_base(rev1, rev2, show_all);

so I think you found a bug in the current code.
I will post a patch to fix it soon.

It will "die" (with an error ùmessage) in case "lookup_commit_reference" 
returns NULL. I hope it's ok.

Thanks,
Christian.
--
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