Exemple #1
0
        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);
        }
Exemple #2
0
        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());
        }