private async Task ProcessCheck(bool noCheckout, bool skipWhenFileMatches, IReadOnlyCollection<Package> packages,
ICollection<Package> syncedPackages, Package.ObjectMap[] objectsToFetch) {
StatusRepo.Reset(RepoStatus.CheckOut, packages.Count);
var i = 0;
syncedPackages.AddRange(packages);
var components = packages.Select(x => new ProgressLeaf(x.MetaData.Name)).ToArray();
if (!noCheckout) {
foreach (var package in packages) {
var p = components[i++];
await p.Do(() => ProcessPackageInternal(package, p)).ConfigureAwait(false);
}
}
if (!noCheckout && skipWhenFileMatches) {
Repo.DeleteObject(objectsToFetch.Select(x => new ObjectInfo(x.FO.Checksum, x.FO.Checksum)));
// nasty using checksum for packed checksum or ? not needed here anyway??
}
}