зеркало из https://github.com/microsoft/git.git
builtin-commit: fix reflog message generation
Instead of strdup()ing, we can just reuse the buffer in which the commit message is stored, and which is supposed to hold the reflog message anyway. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
e97c9ad96b
Коммит
741707b1e2
|
@ -488,7 +488,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
||||||
int header_len, parent_count = 0;
|
int header_len, parent_count = 0;
|
||||||
struct strbuf sb;
|
struct strbuf sb;
|
||||||
const char *index_file, *reflog_msg;
|
const char *index_file, *reflog_msg;
|
||||||
char *nl, *header_line;
|
char *nl;
|
||||||
unsigned char commit_sha1[20];
|
unsigned char commit_sha1[20];
|
||||||
struct ref_lock *ref_lock;
|
struct ref_lock *ref_lock;
|
||||||
|
|
||||||
|
@ -585,12 +585,13 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
||||||
0);
|
0);
|
||||||
|
|
||||||
nl = strchr(sb.buf + header_len, '\n');
|
nl = strchr(sb.buf + header_len, '\n');
|
||||||
header_line = xstrndup(sb.buf + header_len,
|
if (nl)
|
||||||
nl - (sb.buf + header_len));
|
strbuf_setlen(&sb, nl + 1 - sb.buf);
|
||||||
strbuf_release(&sb);
|
else
|
||||||
strbuf_addf(&sb, "%s: %s\n", reflog_msg, header_line);
|
strbuf_addch(&sb, '\n');
|
||||||
strbuf_addch(&sb, '\0');
|
strbuf_remove(&sb, 0, header_len);
|
||||||
free(header_line);
|
strbuf_insert(&sb, 0, reflog_msg, strlen(reflog_msg));
|
||||||
|
strbuf_insert(&sb, strlen(reflog_msg), ": ", 2);
|
||||||
|
|
||||||
if (!ref_lock)
|
if (!ref_lock)
|
||||||
die("cannot lock HEAD ref");
|
die("cannot lock HEAD ref");
|
||||||
|
|
Загрузка…
Ссылка в новой задаче