fsck: introduce partialclone extension
commit498f1f61f123fd66eccc05c1d19356b25b4225b2
authorJonathan Tan <jonathantanmy@google.com>
Tue, 5 Dec 2017 16:58:44 +0000 (5 16:58 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 5 Dec 2017 17:46:05 +0000 (5 09:46 -0800)
tree3fa7494f318e935748085627f7e5d4215327d85e
parent75b97fec171dbbf7ec73960cefb50c265cfb7af7
fsck: introduce partialclone extension

Currently, Git does not support repos with very large numbers of objects
or repos that wish to minimize manipulation of certain blobs (for
example, because they are very large) very well, even if the user
operates mostly on part of the repo, because Git is designed on the
assumption that every referenced object is available somewhere in the
repo storage. In such an arrangement, the full set of objects is usually
available in remote storage, ready to be lazily downloaded.

Teach fsck about the new state of affairs. In this commit, teach fsck
that missing promisor objects referenced from the reflog are not an
error case; in future commits, fsck will be taught about other cases.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fsck.c
cache.h
packfile.c
packfile.h
t/t0410-partial-clone.sh [new file with mode: 0755]