public WalkFetchConnection(IWalkTransport t, WalkRemoteObjectDatabase w)
{
_idBuffer = new MutableObjectId();
_objectDigest = Constants.newMessageDigest();
var wt = (Transport)t;
_local = wt.Local;
_objCheck = wt.CheckFetchedObjects ? new ObjectChecker() : null;
_remotes = new List<WalkRemoteObjectDatabase> { w };
_unfetchedPacks = new LinkedList<RemotePack>();
_packsConsidered = new List<string>();
_noPacksYet = new LinkedList<WalkRemoteObjectDatabase>();
_noPacksYet.AddFirst(w);
_noAlternatesYet = new LinkedList<WalkRemoteObjectDatabase>();
_noAlternatesYet.AddFirst(w);
_fetchErrors = new Dictionary<ObjectId, List<Exception>>();
_packLocks = new List<PackLock>(4);
_revWalk = new RevWalk.RevWalk(_local);
_treeWalk = new TreeWalk.TreeWalk(_local);
COMPLETE = _revWalk.newFlag("COMPLETE");
IN_WORK_QUEUE = _revWalk.newFlag("IN_WORK_QUEUE");
LOCALLY_SEEN = _revWalk.newFlag("LOCALLY_SEEN");
_localCommitQueue = new DateRevQueue();
_workQueue = new LinkedList<ObjectId>();
}