summaryrefslogtreecommitdiff
path: root/reachable.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2011-09-01 15:43:35 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2011-09-01 15:46:13 -0700
commit6b67e0dc068d1bfd07686071b70f60078380666f (patch)
tree826541fa52ed5fdee3458bd4c11af57af58a8368 /reachable.c
parentrev-list --verify-object (diff)
downloadtgif-6b67e0dc068d1bfd07686071b70f60078380666f.tar.xz
fetch: verify we have everything we need before updating our ref
The "git fetch" command works in two phases. The remote side tells us what objects are at the tip of the refs we are fetching from, and transfers the objects missing from our side. After storing the objects in our repository, we update our remote tracking branches to point at the updated tips of the refs. A broken or malicious remote side could send a perfectly well-formed pack data during the object transfer phase, but there is no guarantee that the given data actually fill the gap between the objects we originally had and the refs we are updating to. Although this kind of breakage can be caught by running fsck after a fetch, it is much cheaper to verify that everything that is reachable from the tips of the refs we fetched are indeed fully connected to the tips of our current set of refs before we update them. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reachable.c')
0 files changed, 0 insertions, 0 deletions