/// <exception cref="NGit.Errors.TransportException"></exception> protected internal override void DoFetch(ProgressMonitor monitor, ICollection <Ref > want, ICollection <ObjectId> have) { VerifyPrerequisites(); try { ObjectInserter ins = transport.local.NewObjectInserter(); try { PackParser parser = ins.NewPackParser(bin); parser.SetAllowThin(true); parser.SetObjectChecking(transport.IsCheckFetchedObjects()); parser.SetLockMessage(lockMessage); packLock = parser.Parse(NullProgressMonitor.INSTANCE); ins.Flush(); } finally { ins.Release(); } } catch (IOException err) { Close(); throw new TransportException(transport.uri, err.Message, err); } catch (RuntimeException err) { Close(); throw new TransportException(transport.uri, err.Message, err); } }
internal WalkFetchConnection(WalkTransport t, WalkRemoteObjectDatabase w) { NGit.Transport.Transport wt = (NGit.Transport.Transport)t; local = wt.local; objCheck = wt.IsCheckFetchedObjects() ? new ObjectChecker() : null; inserter = local.NewObjectInserter(); reader = local.NewObjectReader(); remotes = new AList <WalkRemoteObjectDatabase>(); remotes.AddItem(w); unfetchedPacks = new List <WalkFetchConnection.RemotePack>(); packsConsidered = new HashSet <string>(); noPacksYet = new List <WalkRemoteObjectDatabase>(); noPacksYet.AddItem(w); noAlternatesYet = new List <WalkRemoteObjectDatabase>(); noAlternatesYet.AddItem(w); fetchErrors = new Dictionary <ObjectId, IList <Exception> >(); packLocks = new AList <PackLock>(4); revWalk = new RevWalk(reader); revWalk.SetRetainBody(false); treeWalk = new TreeWalk(reader); COMPLETE = revWalk.NewFlag("COMPLETE"); IN_WORK_QUEUE = revWalk.NewFlag("IN_WORK_QUEUE"); LOCALLY_SEEN = revWalk.NewFlag("LOCALLY_SEEN"); localCommitQueue = new DateRevQueue(); workQueue = new List <ObjectId>(); }
/// <exception cref="NGit.Errors.TransportException"></exception> private void FetchObjects(ProgressMonitor monitor) { try { conn.SetPackLockMessage("jgit fetch " + transport.uri); conn.Fetch(monitor, askFor.Values, have); } finally { Sharpen.Collections.AddAll(packLocks, conn.GetPackLocks()); } if (transport.IsCheckFetchedObjects() && !conn.DidFetchTestConnectivity() && !AskForIsComplete ()) { throw new TransportException(transport.GetURI(), JGitText.Get().peerDidNotSupplyACompleteObjectGraph ); } }