public static string StageFiles(IList<GitItemStatus> files)
{
var gitCommand = new GitCommands();
var output = "";
Process process1 = null;
foreach (var file in files)
{
if (file.IsDeleted)
continue;
if (process1 == null)
process1 = gitCommand.CmdStartProcess(Settings.GitCommand, "update-index --add --stdin");
process1.StandardInput.WriteLine("\"" + FixPath(file.Name) + "\"");
}
if (process1 != null)
{
process1.StandardInput.Close();
process1.WaitForExit();
if (gitCommand.Output != null)
output = gitCommand.Output.ToString().Trim();
}
Process process2 = null;
foreach (var file in files)
{
if (!file.IsDeleted)
continue;
if (process2 == null)
process2 = gitCommand.CmdStartProcess(Settings.GitCommand, "update-index --remove --stdin");
process2.StandardInput.WriteLine("\"" + FixPath(file.Name) + "\"");
}
if (process2 != null)
{
process2.StandardInput.Close();
process2.WaitForExit();
if (gitCommand.Output != null)
{
if (!string.IsNullOrEmpty(output))
{
output += Environment.NewLine;
}
output += gitCommand.Output.ToString().Trim();
}
}
return output;
}