protected override void Execute(GVFSEnlistment enlistment) { // Now default to the current working directory when running the verb without a specified path if (string.IsNullOrEmpty(this.Directory) || this.Directory.Equals(".")) { if (Environment.CurrentDirectory.StartsWith(enlistment.WorkingDirectoryRoot, StringComparison.OrdinalIgnoreCase)) { this.Directory = Environment.CurrentDirectory.Substring(enlistment.WorkingDirectoryRoot.Length); } else { // If the path is not under the source root, set the directory to empty this.Directory = string.Empty; } } this.Output.WriteLine("\nGathering repository data..."); this.Directory = this.Directory.Replace(GVFSPlatform.GVFSPlatformConstants.PathSeparator, GVFSConstants.GitPathSeparator); EnlistmentPathData pathData = new EnlistmentPathData(); this.GetPlaceholdersFromDatabase(enlistment, pathData); this.GetModifiedPathsFromPipe(enlistment, pathData); this.GetPathsFromGitIndex(enlistment, pathData); pathData.NormalizeAllPaths(); EnlistmentHealthCalculator enlistmentHealthCalculator = new EnlistmentHealthCalculator(pathData); EnlistmentHealthData enlistmentHealthData = enlistmentHealthCalculator.CalculateStatistics(this.Directory); this.PrintOutput(enlistmentHealthData); }