On 07/09, Junio C Hamano wrote: > Brandon Williams <bmwill@xxxxxxxxxx> writes: > > >> > > diff --git a/refs/files-backend.c b/refs/files-backend.c > >> > > index a9a066dcfb..252f835bae 100644 > >> > > --- a/refs/files-backend.c > >> > > +++ b/refs/files-backend.c > >> > > @@ -1587,7 +1587,7 @@ static int log_ref_write_fd(int fd, const struct object_id *old_oid, > >> > > char *logrec; > >> > > > >> > > msglen = msg ? strlen(msg) : 0; > >> > > - maxlen = strlen(committer) + msglen + 100; > >> > > + maxlen = strlen(committer) + msglen + 200; > >> > > logrec = xmalloc(maxlen); > >> > > len = xsnprintf(logrec, maxlen, "%s %s %s\n", > >> > > oid_to_hex(old_oid), > >> > > >> > nit: 100 is not enough anymore, but wasn't a very descriptive value. 200 > >> > may be enough now, but I'm not sure why. > >> > >> That line was touched in by Michael in 7bd9bcf372d (refs: split filesystem-based > >> refs code into a new file, 2015-11-09) and before that by Ronnie in 2c6207abbd6 > >> (refs.c: add a function to append a reflog entry to a fd, 2014-12-12) > >> and introduced > >> by Junio in 8ac65937d03 (Make sure we do not write bogus reflog > >> entries., 2007-01-26) > >> and it appears to me that 2*40 + 5 ought to be sufficient, but no > >> comments or commit > >> messages are found as to why we rather choose 100. > > > > Whats the reason for not using a strbuf here so that we don't have to > > play with magic numbers? > > Quite a legitimate question. > > I suspect that the reason is because the code (even though it now > sits in a file that was relatively recently creted) predates either > the introduction or wide adoption of strbuf. > > Back when 6de08ae6 ("Log ref updates to logs/refs/<ref>", > 2006-05-17) was done, we already had strbuf.c, but it only had > read_line() and nothing else back then, so it wouldn't have been > possible to use a strbuf there. Fair enough, having never working in the code back then I don't know what life was like without strbuf. -- Brandon Williams