private async Task DownloadItemAndContentInChangesAsync(Commit commit)
 {
     var tasks = from change in commit.Changes
                 where ChangeTypeHasContent(change)
                 select _downloadRequest.DownloadItemAndContentInCommitAsync(change, commit.CommitId, _push.Repository.Id, _token);
     await Task.WhenAll(tasks);
 }
 private async Task DownloadChangesInCommitAsync(Commit commit)
 {
     var changes = await _downloadRequest.DownloadChangesInCommitAsync(commit.CommitId, _push.Repository.Id, _token);
     commit.Changes = changes.Where(c => c.Item.IsInRoot(_root));
 }
 private async Task DownloadCommitAsync(Commit commit)
 {
     await DownloadChangesInCommitAsync(commit);
     await DownloadItemAndContentInChangesAsync(commit);
 }