Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
refs: remove API function update_refs()
author
Michael Haggerty
<mhagger@alum.mit.edu>
Mon, 7 Apr 2014 13:48:12 +0000
(15:48 +0200)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 7 Apr 2014 19:09:14 +0000
(12:09 -0700)
It has been superseded by reference transactions. This also means
that struct ref_update can become private.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c
patch
|
blob
|
history
refs.h
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
aebfc13
)
diff --git
a/refs.c
b/refs.c
index f0b5764b34d7eb94207b1cc7fecc747fe1eb510b..6984ff0aff994a46c8bfa8e650327cead7bb4546 100644
(file)
--- a/
refs.c
+++ b/
refs.c
@@
-3267,6
+3267,20
@@
static int update_ref_write(const char *action, const char *refname,
return 0;
}
return 0;
}
+/**
+ * Information needed for a single ref update. Set new_sha1 to the
+ * new value or to zero to delete the ref. To check the old value
+ * while locking the ref, set have_old to 1 and set old_sha1 to the
+ * value or to zero to ensure the ref does not exist before update.
+ */
+struct ref_update {
+ const char *ref_name;
+ unsigned char new_sha1[20];
+ unsigned char old_sha1[20];
+ int flags; /* REF_NODEREF? */
+ int have_old; /* 1 if old_sha1 is valid, 0 otherwise */
+};
+
/*
* Data structure for holding a reference transaction, which can
* consist of checks and updates to multiple references, carried out
/*
* Data structure for holding a reference transaction, which can
* consist of checks and updates to multiple references, carried out
@@
-3396,16
+3410,17
@@
static int ref_update_reject_duplicates(struct ref_update **updates, int n,
return 0;
}
return 0;
}
-int
update_refs(const char *action, struct ref_update * const *updates_orig
,
-
int n
, enum action_on_err onerr)
+int
ref_transaction_commit(struct ref_transaction *transaction
,
+
const char *msg
, enum action_on_err onerr)
{
int ret = 0, delnum = 0, i;
struct ref_update **updates;
int *types;
struct ref_lock **locks;
const char **delnames;
{
int ret = 0, delnum = 0, i;
struct ref_update **updates;
int *types;
struct ref_lock **locks;
const char **delnames;
+ int n = transaction->nr;
- if (!
updates_orig || !
n)
+ if (!n)
return 0;
/* Allocate work space */
return 0;
/* Allocate work space */
@@
-3415,7
+3430,7
@@
int update_refs(const char *action, struct ref_update * const *updates_orig,
delnames = xmalloc(sizeof(*delnames) * n);
/* Copy, sort, and reject duplicate refs */
delnames = xmalloc(sizeof(*delnames) * n);
/* Copy, sort, and reject duplicate refs */
- memcpy(updates,
updates_orig
, sizeof(*updates) * n);
+ memcpy(updates,
transaction->updates
, sizeof(*updates) * n);
qsort(updates, n, sizeof(*updates), ref_update_compare);
ret = ref_update_reject_duplicates(updates, n, onerr);
if (ret)
qsort(updates, n, sizeof(*updates), ref_update_compare);
ret = ref_update_reject_duplicates(updates, n, onerr);
if (ret)
@@
-3437,7
+3452,7
@@
int update_refs(const char *action, struct ref_update * const *updates_orig,
/* Perform updates first so live commits remain referenced */
for (i = 0; i < n; i++)
if (!is_null_sha1(updates[i]->new_sha1)) {
/* Perform updates first so live commits remain referenced */
for (i = 0; i < n; i++)
if (!is_null_sha1(updates[i]->new_sha1)) {
- ret = update_ref_write(
action
,
+ ret = update_ref_write(
msg
,
updates[i]->ref_name,
updates[i]->new_sha1,
locks[i], onerr);
updates[i]->ref_name,
updates[i]->new_sha1,
locks[i], onerr);
@@
-3465,14
+3480,6
@@
int update_refs(const char *action, struct ref_update * const *updates_orig,
free(types);
free(locks);
free(delnames);
free(types);
free(locks);
free(delnames);
- return ret;
-}
-
-int ref_transaction_commit(struct ref_transaction *transaction,
- const char *msg, enum action_on_err onerr)
-{
- int ret = update_refs(msg, transaction->updates, transaction->nr,
- onerr);
ref_transaction_free(transaction);
return ret;
}
ref_transaction_free(transaction);
return ret;
}
diff --git
a/refs.h
b/refs.h
index 0518dd5203e09f805d6c9ece0752ea02365f0843..cb799a39f7a490ab78b0e0e65d64b050d98af823 100644
(file)
--- a/
refs.h
+++ b/
refs.h
@@
-10,20
+10,6
@@
struct ref_lock {
int force_write;
};
int force_write;
};
-/**
- * Information needed for a single ref update. Set new_sha1 to the
- * new value or to zero to delete the ref. To check the old value
- * while locking the ref, set have_old to 1 and set old_sha1 to the
- * value or to zero to ensure the ref does not exist before update.
- */
-struct ref_update {
- const char *ref_name;
- unsigned char new_sha1[20];
- unsigned char old_sha1[20];
- int flags; /* REF_NODEREF? */
- int have_old; /* 1 if old_sha1 is valid, 0 otherwise */
-};
-
struct ref_transaction;
/*
struct ref_transaction;
/*
@@
-290,12
+276,6
@@
int update_ref(const char *action, const char *refname,
const unsigned char *sha1, const unsigned char *oldval,
int flags, enum action_on_err onerr);
const unsigned char *sha1, const unsigned char *oldval,
int flags, enum action_on_err onerr);
-/**
- * Lock all refs and then perform all modifications.
- */
-int update_refs(const char *action, struct ref_update * const *updates,
- int n, enum action_on_err onerr);
-
extern int parse_hide_refs_config(const char *var, const char *value, const char *);
extern int ref_is_hidden(const char *);
extern int parse_hide_refs_config(const char *var, const char *value, const char *);
extern int ref_is_hidden(const char *);