From 25429fed5ce134bce9f729d927ac397badae1959 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Fri, 31 Jul 2020 11:36:10 +0000 Subject: [PATCH] refs: move the logic to add \t to reflog to the files backend 523fa69c (reflog: cleanse messages in the refs.c layer, 2020-07-10) centralized reflog normalizaton. However, the normalizaton added a leading "\t" to the message. This is an artifact of the reflog storage format in the files backend, so it should be added there. Routines that parse back the reflog (such as grab_nth_branch_switch) expect the "\t" to not be in the message, so without this fix, git with reftable cannot process the "@{-1}" syntax. Signed-off-by: Han-Wen Nienhuys Signed-off-by: Junio C Hamano --- refs.c | 1 - refs/files-backend.c | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/refs.c b/refs.c index b1dc81640b..9d58e17eaf 100644 --- a/refs.c +++ b/refs.c @@ -875,7 +875,6 @@ static void copy_reflog_msg(struct strbuf *sb, const char *msg) char c; int wasspace = 1; - strbuf_addch(sb, '\t'); while ((c = *msg++)) { if (wasspace && isspace(c)) continue; diff --git a/refs/files-backend.c b/refs/files-backend.c index e0aba23eb2..985631f33e 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -1628,8 +1628,10 @@ static int log_ref_write_fd(int fd, const struct object_id *old_oid, int ret = 0; strbuf_addf(&sb, "%s %s %s", oid_to_hex(old_oid), oid_to_hex(new_oid), committer); - if (msg && *msg) + if (msg && *msg) { + strbuf_addch(&sb, '\t'); strbuf_addstr(&sb, msg); + } strbuf_addch(&sb, '\n'); if (write_in_full(fd, sb.buf, sb.len) < 0) ret = -1;