X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=refs.c;h=541fec20658082f13ef4b73b621787512b300ba6;hb=b141a47801d6fb2d68ec48adfe7597ec3ce49c0d;hp=6cec1c8bdf70589a41c2ace4ba4f21f4035e4ed4;hpb=90ae9f259eb55adf54bec6442fe9e2fe223ef80c;p=git.git diff --git a/refs.c b/refs.c index 6cec1c8bd..541fec206 100644 --- a/refs.c +++ b/refs.c @@ -1744,7 +1744,8 @@ static struct lock_file packlock; static int repack_without_ref(const char *refname) { struct repack_without_ref_sb data; - struct ref_dir *packed = get_packed_refs(get_ref_cache(NULL)); + struct ref_cache *refs = get_ref_cache(NULL); + struct ref_dir *packed = get_packed_refs(refs); if (find_ref(packed, refname) == NULL) return 0; data.refname = refname; @@ -1753,6 +1754,8 @@ static int repack_without_ref(const char *refname) unable_to_lock_error(git_path("packed-refs"), errno); return error("cannot delete '%s' from packed refs", refname); } + clear_packed_ref_cache(refs); + packed = get_packed_refs(refs); do_for_each_ref_in_dir(packed, 0, "", repack_without_ref_fn, 0, 0, &data); return commit_lock_file(&packlock); }