using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; namespace SourceGit.Commands { public class QueryRevisionFileNames : Command { public QueryRevisionFileNames(string repo, string revision) { WorkingDirectory = repo; Context = repo; Args = $"ls-tree -r --name-only {revision}"; } public async Task> GetResultAsync() { var outs = new List(); try { using var proc = new Process(); proc.StartInfo = CreateGitStartInfo(true); proc.Start(); while (await proc.StandardOutput.ReadLineAsync().ConfigureAwait(false) is { Length: > 0 } line) outs.Add(line); await proc.WaitForExitAsync().ConfigureAwait(false); } catch { // Ignore exceptions. } return outs; } } }