protected override void DoWork() { string blobId; using (LibGit2Repo repo = new LibGit2Repo(this.tracer, this.enlistment.WorkingDirectoryRoot)) { while (this.inputQueue.TryTake(out blobId, Timeout.Infinite)) { if (!repo.ObjectExists(blobId)) { Interlocked.Increment(ref this.missingBlobCount); this.DownloadQueue.Add(blobId); } else { Interlocked.Increment(ref this.availableBlobCount); this.AvailableBlobs.Add(blobId); } } } }
protected void DownloadMissingCommit(string commitSha, GitObjects gitObjects) { EventMetadata startMetadata = new EventMetadata(); startMetadata.Add("CommitSha", commitSha); using (ITracer activity = this.Tracer.StartActivity("DownloadTrees", EventLevel.Informational, Keywords.Telemetry, startMetadata)) { using (LibGit2Repo repo = new LibGit2Repo(this.Tracer, this.Enlistment.WorkingDirectoryBackingRoot)) { if (!repo.ObjectExists(commitSha)) { if (!gitObjects.TryDownloadCommit(commitSha)) { EventMetadata metadata = new EventMetadata(); metadata.Add("ObjectsEndpointUrl", this.ObjectRequestor.CacheServer.ObjectsEndpointUrl); activity.RelatedError(metadata, "Could not download commits"); throw new FetchException("Could not download commits from {0}", this.ObjectRequestor.CacheServer.ObjectsEndpointUrl); } } } } }
protected override void DoWork() { string blobId; using (LibGit2Repo repo = new LibGit2Repo(this.tracer, this.enlistment.LocalStorageRoot)) { while (this.requiredBlobs.TryTake(out blobId, Timeout.Infinite)) { if (this.alreadyFoundBlobIds.Add(blobId)) { if (!repo.ObjectExists(blobId)) { Interlocked.Increment(ref this.missingBlobCount); this.MissingBlobs.Add(blobId); } else { Interlocked.Increment(ref this.availableBlobCount); this.AvailableBlobs.Add(blobId); } } } } }