summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonnie Sahlberg <sahlberg@google.com>2014-07-23 10:03:49 -0700
committerJunio C Hamano <gitster@pobox.com>2014-09-03 10:15:50 -0700
commitf46c7bc6ffb731e57194b39c29ed55ef1b1ebaf9 (patch)
treee1ef3f1087280858efb61aeae4d4e541238f3d79
parent2679332664656b13836e6c09516736b2861d850e (diff)
downloadgit-f46c7bc6ffb731e57194b39c29ed55ef1b1ebaf9.tar.gz
refs.c: only write reflog update if msg is non-NULL
When performing a reflog transaction update, only write to the reflog iff msg is non-NULL. This can then be combined with REFLOG_TRUNCATE to perform an update that only truncates but does not write. Signed-off-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--refs.c5
-rw-r--r--refs.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/refs.c b/refs.c
index 01d5ed5a97..b9140935f4 100644
--- a/refs.c
+++ b/refs.c
@@ -3770,8 +3770,9 @@ int transaction_commit(struct ref_transaction *transaction,
update->reflog_fd = -1;
continue;
}
- if (log_ref_write_fd(update->reflog_fd, update->old_sha1,
- update->new_sha1,
+ if (update->msg &&
+ log_ref_write_fd(update->reflog_fd,
+ update->old_sha1, update->new_sha1,
update->committer, update->msg)) {
error("Could write to reflog: %s. %s",
update->refname, strerror(errno));
diff --git a/refs.h b/refs.h
index 2234750cf8..e58b2ad66a 100644
--- a/refs.h
+++ b/refs.h
@@ -329,6 +329,7 @@ int transaction_delete_sha1(struct ref_transaction *transaction,
/*
* Append a reflog entry for refname. If the REFLOG_TRUNCATE flag is set
* this update will first truncate the reflog before writing the entry.
+ * If msg is NULL no update will be written to the log.
*/
int transaction_update_reflog(struct ref_transaction *transaction,
const char *refname,