Re: [PATCH] Fix mishandling of $Id$ expanded in the repository copy in convert.c
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 26, 2007, 08:09 UTC
- Message-ID
- <7vlkfcm2eu.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <200705251150.09439.andyparkins@gmail.com>
Andy Parkins <andyparkins@gmail.com> writes:
> I've included the comments I wrote while debugging in this patch, which > I'm sure will annoy you, because you'd rather the fix and the comments > separately. I'll supply that if you wish - just holler.
Actually I like well commented code, although some of your comments feel a tad too much at places. For example,
Show 6 quoted lines
> for (dst = buf; size; size--) {
> const char *cp;
> + /* Fetch next source character, move the pointer on */
> char ch = *src++;
> + /* Copy the current character to the destination */
> *dst++ = ch;These are too much.
Show 13 quoted lines
> + /* If the current character is "$" or there are less than three
> + * remaining bytes or the two bytes following this one are not
> + * "Id", then simply read the next character */
> if ((ch != '$') || (size < 3) || memcmp("Id", src, 2))
> continue;
> + /*
> + * Here when
> + * - There are more than 2 bytes remaining
> + * - The current three bytes are "$Id$"
> + * with
> + * - ch == "$"
> + * - src[0] == "I"
> + */But this is very good, if you fix it to read the current 3 are "$Id" ;-).
> + /* > + * It's possible that an expanded Id has crept its way into the > + * repository, we cope with that by stripping the expansion out > + */
So are all the other comments.
Thanks for the fix. It would be very nice for the patch to be accompanied with a new test to expose the bug and demonstrate that the patch fixes it.