summaryrefslogtreecommitdiff
path: root/refs.c
diff options
context:
space:
mode:
Diffstat (limited to 'refs.c')
-rw-r--r--refs.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/refs.c b/refs.c
index 3465db64f9..b1c15fda80 100644
--- a/refs.c
+++ b/refs.c
@@ -1996,14 +1996,6 @@ struct pack_refs_cb_data {
FILE *refs_file;
};
-static int do_not_prune(int flags)
-{
- /* If it is already packed or if it is a symref,
- * do not prune it.
- */
- return (flags & (REF_ISSYMREF|REF_ISPACKED));
-}
-
static int pack_one_ref(struct ref_entry *entry, void *cb_data)
{
struct pack_refs_cb_data *cb = cb_data;
@@ -2031,7 +2023,8 @@ static int pack_one_ref(struct ref_entry *entry, void *cb_data)
sha1_to_hex(o->sha1));
}
- if ((cb->flags & PACK_REFS_PRUNE) && !do_not_prune(entry->flag)) {
+ /* If the ref was already packed, there is no need to prune it. */
+ if ((cb->flags & PACK_REFS_PRUNE) && !(entry->flag & REF_ISPACKED)) {
int namelen = strlen(entry->name) + 1;
struct ref_to_prune *n = xcalloc(1, sizeof(*n) + namelen);
hashcpy(n->sha1, entry->u.value.sha1);