Class WalkFetchConnection

All Implemented Interfaces:
AutoCloseable, Connection, FetchConnection

class WalkFetchConnection extends BaseFetchConnection
Generic fetch support for dumb transport protocols.

Since there are no Git-specific smarts on the remote side of the connection the client side must determine which objects it needs to copy in order to completely fetch the requested refs and their history. The generic walk support in this class parses each individual object (once it has been copied to the local repository) and examines the list of objects that must also be copied to create a complete history. Objects which are already available locally are retained (and not copied), saving bandwidth for incremental fetches. Pack files are copied from the remote repository only as a last resort, as the entire pack must be copied locally in order to access any single object.

This fetch connection does not actually perform the object data transfer. Instead it delegates the transfer to a WalkRemoteObjectDatabase, which knows how to read individual files from the remote repository and supply the data as a standard Java InputStream.

See Also: