pack_one_ref(): do some cheap tests before a more expensive one
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael Haggerty committed
Apr 22, 2013 at 21:52 UTC
b2a8226d6360fc6e19af134236b3dd11f9d2040e
1 file changed
+5
-6
refs.c
+5
-6
@@ -2008,18 +2008,17 @@ static int pack_one_ref(struct ref_entry *entry, void *cb_data)
2008
{
2009
struct pack_refs_cb_data *cb = cb_data;
2010
enum peel_status peel_status;
2011
- int is_tag_ref;
2012
-
2013
- /* Do not pack symbolic or broken refs: */
2014
- if ((entry->flag & REF_ISSYMREF) || !ref_resolves_to_object(entry))
2015
- return 0;
2016
- is_tag_ref = !prefixcmp(entry->name, "refs/tags/");
2011
+ int is_tag_ref = !prefixcmp(entry->name, "refs/tags/");
2012
2013
/* ALWAYS pack refs that were already packed or are tags */
2014
if (!(cb->flags & PACK_REFS_ALL) && !is_tag_ref &&
2015
!(entry->flag & REF_ISPACKED))
2016
return 0;
2017
2018
+ /* Do not pack symbolic or broken refs: */
2019
+ if ((entry->flag & REF_ISSYMREF) || !ref_resolves_to_object(entry))
2020
+ return 0;
2021
+
2022
peel_status = peel_entry(entry, 1);
2023
if (peel_status != PEEL_PEELED && peel_status != PEEL_NON_TAG)
2024
die("internal error peeling reference %s (%s)",