private async Task ProcessModern(bool noCheckout, Package[] packages) {
if (noCheckout)
throw new NotSupportedException();
var doRemoval = Settings.CheckoutType != CheckoutType.CheckoutWithoutRemoval;
var synqer = new Synqer();
var allRemotes = packages.SelectMany(x => FindRemotesWithPackage(x.GetFullName())).Distinct().ToArray();
await
synqer.DownloadPackages(packages,
Repo.ObjectsPath.GetChildDirectoryWithName("temp"),
allRemotes, StatusRepo, doRemoval ? Progress.Cleanup : null, Progress.Processing)
.ConfigureAwait(false);
// TODO: Only when changed?
foreach (var p in packages)
p.WriteTag();
}