Check object connectivity during fetch if fsck is enabled
commit3ec92dc2111e52ee605e504974748df6905fd380
authorShawn O. Pearce <spearce@spearce.org>
Mon, 13 Oct 2008 17:36:40 +0000 (13 10:36 -0700)
committerRobin Rosenberg <robin.rosenberg@dewire.com>
Fri, 31 Oct 2008 00:05:43 +0000 (31 01:05 +0100)
tree42c7eff1f647cb143cb0a948e3e8f383fd92617c
parenta4b98ed15ea5f165a7aa0f2fd2ea6fcce6710925
Check object connectivity during fetch if fsck is enabled

If we are fetching over a pack oriented connection and we are doing
object-level fsck validation we need to also verify the graph is
fully connected after the fetch is complete.  This additional check
is necessary to ensure the peer didn't omit objects that we don't
have, but which are listed as needing to be present.

On the walk style fetch connection we can bypass this check, as the
connectivity was implicitly verified by the walker as it downloaded
objects and built its queue of things to fetch.  Native pack and
bundle transports however do not have this check built into them,
and require that we execute the work ourselves.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java
org.spearce.jgit/src/org/spearce/jgit/transport/FetchConnection.java
org.spearce.jgit/src/org/spearce/jgit/transport/FetchProcess.java
org.spearce.jgit/src/org/spearce/jgit/transport/TransportBundle.java
org.spearce.jgit/src/org/spearce/jgit/transport/WalkFetchConnection.java