fetch-pack.c: move shallow update code out of fetch_pack()

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2013-12-05 20:02:37 +07:00 коммит произвёл Junio C Hamano
Родитель 8e277383e0
Коммит a796ccee51
1 изменённых файлов: 13 добавлений и 9 удалений

Просмотреть файл

@ -925,6 +925,18 @@ static int remove_duplicates_in_refs(struct ref **ref, int nr)
return dst;
}
static void update_shallow(struct fetch_pack_args *args)
{
if (args->depth > 0 && alternate_shallow_file) {
if (*alternate_shallow_file == '\0') { /* --unshallow */
unlink_or_warn(git_path("shallow"));
rollback_lock_file(&shallow_lock);
} else
commit_lock_file(&shallow_lock);
return;
}
}
struct ref *fetch_pack(struct fetch_pack_args *args,
int fd[], struct child_process *conn,
const struct ref *ref,
@ -943,15 +955,7 @@ struct ref *fetch_pack(struct fetch_pack_args *args,
die("no matching remote head");
}
ref_cpy = do_fetch_pack(args, fd, ref, sought, nr_sought, pack_lockfile);
if (args->depth > 0 && alternate_shallow_file) {
if (*alternate_shallow_file == '\0') { /* --unshallow */
unlink_or_warn(git_path("shallow"));
rollback_lock_file(&shallow_lock);
} else
commit_lock_file(&shallow_lock);
}
update_shallow(args);
reprepare_packed_git();
return ref_cpy;
}