private static List <GitTreeEntry> GetProjectedEntries(GVFSContext context, DotGit.SparseCheckoutAndDoNotProject sparseCheckoutAndDoNotProject, string virtualPath, List <GitTreeEntry> treeEntries) { List <GitTreeEntry> projectedTreeEntries = new List <GitTreeEntry>(); foreach (GitTreeEntry entry in treeEntries) { string entryVirtualPath = Path.Combine(virtualPath, entry.Name); if (sparseCheckoutAndDoNotProject.ShouldPathBeProjected(entryVirtualPath, entry.IsTree)) { projectedTreeEntries.Add(entry); } } return(projectedTreeEntries); }
public GVFltFolder( GVFSContext context, GVFSGitObjects gitObjects, DotGit.SparseCheckoutAndDoNotProject sparseCheckoutAndDoNotProject, PersistentDictionary <string, long> blobSizes, string virtualPath, string projectedCommitId) { List <GitTreeEntry> treeEntries = context.Repository.GetTreeEntries(projectedCommitId, virtualPath).ToList(); treeEntries = GetProjectedEntries(context, sparseCheckoutAndDoNotProject, virtualPath, treeEntries); this.PopulateNamedEntrySizes(gitObjects, blobSizes, virtualPath, context, treeEntries); this.entries = new List <GVFltFileInfo>(); foreach (GitTreeEntry entry in treeEntries) { this.entries.Add(new GVFltFileInfo(entry.Name, entry.IsBlob ? entry.Size : 0, entry.IsTree)); } this.entries.Sort(GVFltFileInfo.SortAlphabeticallyIgnoreCase()); }