diff --git a/refs.c b/refs.c index 3465db64f9683745604b3fef72f343554816ea1a..b1c15fda80fb8ccb2ec1d0c5e4903cfdb12d05ff 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);