summaryrefslogtreecommitdiff
path: root/include/git2
diff options
context:
space:
mode:
Diffstat (limited to 'include/git2')
-rw-r--r--include/git2/refs.h12
-rw-r--r--include/git2/sys/refdb_backend.h6
2 files changed, 18 insertions, 0 deletions
diff --git a/include/git2/refs.h b/include/git2/refs.h
index 2dc137692..31bf997fe 100644
--- a/include/git2/refs.h
+++ b/include/git2/refs.h
@@ -556,6 +556,18 @@ GIT_EXTERN(int) git_reference_foreach_glob(
GIT_EXTERN(int) git_reference_has_log(git_reference *ref);
/**
+ * Ensure there is a reflog for a particular reference.
+ *
+ * Make sure that successive updates to the reference will append to
+ * its log.
+ *
+ * @param repo the repository
+ * @param refname the reference's name
+ * @return 0 or an error code.
+ */
+GIT_EXTERN(int) git_reference_ensure_log(git_repository *repo, const char *refname);
+
+/**
* Check if a reference is a local branch.
*
* @param ref A git reference
diff --git a/include/git2/sys/refdb_backend.h b/include/git2/sys/refdb_backend.h
index 131e1b5d0..1485ed73a 100644
--- a/include/git2/sys/refdb_backend.h
+++ b/include/git2/sys/refdb_backend.h
@@ -117,6 +117,12 @@ struct git_refdb_backend {
int (*compress)(git_refdb_backend *backend);
/**
+ * Make sure a particular reference will have a reflog which
+ * will be appended to on writes.
+ */
+ int (*ensure_log)(git_refdb_backend *backend, const char *refname);
+
+ /**
* Frees any resources held by the refdb. A refdb implementation may
* provide this function; if it is not provided, nothing will be done.
*/