public string AssumeUnchangedFiles(IList<GitItemStatus> files, bool assumeUnchanged, out bool wereErrors)
{
var output = "";
string error = "";
wereErrors = false;
var startInfo = CreateGitStartInfo("update-index --" + (assumeUnchanged ? "" : "no-") + "assume-unchanged --stdin");
var processReader = new Lazy<SynchronizedProcessReader>(() => new SynchronizedProcessReader(Process.Start(startInfo)));
foreach (var file in files.Where(file => file.IsAssumeUnchanged != assumeUnchanged))
{
UpdateIndex(processReader, file.Name);
}
if (processReader.IsValueCreated)
{
processReader.Value.Process.StandardInput.Close();
processReader.Value.WaitForExit();
wereErrors = processReader.Value.Process.ExitCode != 0;
output = processReader.Value.OutputString(SystemEncoding);
error = processReader.Value.ErrorString(SystemEncoding);
}
return output.Combine(Environment.NewLine, error);
}