Re: [PATCH] replace: parse revision argument for -d
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Oct 29, 2012, 09:02 UTC
- Message-ID
- <508E4637.2060903@drmicha.warpmail.net>
- In-Reply-To
- <20121029065836.GC5102@sigill.intra.peff.net>
Jeff King venit, vidit, dixit 29.10.2012 07:58:
Show 12 quoted lines
> On Fri, Oct 26, 2012 at 03:33:27PM +0200, Michael J Gruber wrote:
>
>> for (p = argv; *p; p++) {
>> - if (snprintf(ref, sizeof(ref), "refs/replace/%s", *p)
>> + q = *p;
>> + if (get_sha1(q, sha1))
>> + warning("Failed to resolve '%s' as a valid ref; taking it literally.", q);
>> + else
>> + q = sha1_to_hex(sha1);
>
> Doesn't get_sha1 already handle this for 40-byte sha1s (and for anything
> else, it would not work anyway)?What is "this"???
So far, "git replace -d <rev>" only accepts a full sha1, because it uses it literally as a ref name "resf/replace/<rev>" without resolving anything.
The patch makes it so that <rev> gets resolved to a sha1 even if it is abbreviated, and then it gets used.
Or do you mean the warning?
Michael