Merge branch 'jk/repack-ref-racefix' into maint

* jk/repack-ref-racefix:
  refs: do not use cached refs in repack_without_ref
This commit is contained in:
Junio C Hamano 2013-01-10 14:04:17 -08:00
Родитель 8bc714b408 b3f1280ec7
Коммит f70eec8400
1 изменённых файлов: 4 добавлений и 1 удалений

5
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);
}