Junio C Hamano <[email protected]> writes:
> Dave Borowitz <[email protected]> writes:
>
>> Signed-off-by: Dave Borowitz <[email protected]>
>> ---
>> Documentation/technical/pack-protocol.txt | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/Documentation/technical/pack-protocol.txt
>> b/Documentation/technical/pack-protocol.txt
>> index 1386840..2d8b1a1 100644
>> --- a/Documentation/technical/pack-protocol.txt
>> +++ b/Documentation/technical/pack-protocol.txt
>> @@ -534,6 +534,9 @@ A push certificate begins with a set of header
>> lines. After the
>> header and an empty line, the protocol commands follow, one per
>> line.
>>
>> +Note that (unlike other portions of the protocol), all LFs in the
>> +`push-cert` specification above MUST be present.
>> +
>> Currently, the following header fields are defined:
>>
>> `pusher` ident::
>
> I am moderately negative about this; wouldn't it make the end result
> cleaner to fix the implementation?
I think that something like this should be sufficient. As the
receiving end, we must not complain if there is no terminator.
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 94d0571..303a1dd 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -1415,9 +1415,12 @@ static struct command *read_head_info(struct sha1_array
*shallow)
true_flush = 1;
break;
}
- if (!strcmp(certbuf, "push-cert-end\n"))
+ if (!strcmp(certbuf, "push-cert-end") ||
+ !strcmp(certbuf, "push-cert-end\n"))
break; /* end of cert */
strbuf_addstr(&push_cert, certbuf);
+ if (certbuf[len - 1] != '\n')
+ strbuf_addch(&push_cert, '\n');
}
if (true_flush)
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html