提交 fc1c2168 编写于 作者: M Michael Haggerty 提交者: Junio C Hamano

delete_ref(): move declaration to refs.h

Also

* Add a docstring

* Rename the second parameter to "old_sha1", to be consistent with the
  convention used elsewhere in the refs module
Signed-off-by: NMichael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 a5fe6680
...@@ -585,8 +585,6 @@ extern void update_index_if_able(struct index_state *, struct lock_file *); ...@@ -585,8 +585,6 @@ extern void update_index_if_able(struct index_state *, struct lock_file *);
extern int hold_locked_index(struct lock_file *, int); extern int hold_locked_index(struct lock_file *, int);
extern void set_alternate_index_output(const char *); extern void set_alternate_index_output(const char *);
extern int delete_ref(const char *, const unsigned char *sha1, unsigned int flags);
/* Environment bits from configuration mechanism */ /* Environment bits from configuration mechanism */
extern int trust_executable_bit; extern int trust_executable_bit;
extern int trust_ctime; extern int trust_ctime;
......
...@@ -2801,7 +2801,8 @@ static int delete_ref_loose(struct ref_lock *lock, int flag, struct strbuf *err) ...@@ -2801,7 +2801,8 @@ static int delete_ref_loose(struct ref_lock *lock, int flag, struct strbuf *err)
return 0; return 0;
} }
int delete_ref(const char *refname, const unsigned char *sha1, unsigned int flags) int delete_ref(const char *refname, const unsigned char *old_sha1,
unsigned int flags)
{ {
struct ref_transaction *transaction; struct ref_transaction *transaction;
struct strbuf err = STRBUF_INIT; struct strbuf err = STRBUF_INIT;
...@@ -2809,7 +2810,7 @@ int delete_ref(const char *refname, const unsigned char *sha1, unsigned int flag ...@@ -2809,7 +2810,7 @@ int delete_ref(const char *refname, const unsigned char *sha1, unsigned int flag
transaction = ref_transaction_begin(&err); transaction = ref_transaction_begin(&err);
if (!transaction || if (!transaction ||
ref_transaction_delete(transaction, refname, ref_transaction_delete(transaction, refname,
(sha1 && !is_null_sha1(sha1)) ? sha1 : NULL, (old_sha1 && !is_null_sha1(old_sha1)) ? old_sha1 : NULL,
flags, NULL, &err) || flags, NULL, &err) ||
ref_transaction_commit(transaction, &err)) { ref_transaction_commit(transaction, &err)) {
error("%s", err.buf); error("%s", err.buf);
......
...@@ -202,6 +202,16 @@ extern int read_ref_at(const char *refname, unsigned int flags, ...@@ -202,6 +202,16 @@ extern int read_ref_at(const char *refname, unsigned int flags,
/** Check if a particular reflog exists */ /** Check if a particular reflog exists */
extern int reflog_exists(const char *refname); extern int reflog_exists(const char *refname);
/*
* Delete the specified reference. If old_sha1 is non-NULL and not
* NULL_SHA1, then verify that the current value of the reference is
* old_sha1 before deleting it. If old_sha1 is NULL or NULL_SHA1,
* delete the reference if it exists, regardless of its old value.
* flags is passed through to ref_transaction_delete().
*/
extern int delete_ref(const char *refname, const unsigned char *old_sha1,
unsigned int flags);
/** Delete a reflog */ /** Delete a reflog */
extern int delete_reflog(const char *refname); extern int delete_reflog(const char *refname);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册