X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=refs.c;h=541fec20658082f13ef4b73b621787512b300ba6;hb=c0179c0d33b0fc3c8ad30246eece220e0442fb6e;hp=6cec1c8bdf70589a41c2ace4ba4f21f4035e4ed4;hpb=8da3933ad6b4bd73bf4ed05fdd420ebb89a4e0a2;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); }