Мне нужно получить журнал фиксации по дате для проекта svn, использующего приложение C #, т. Е. Если мы предоставили URl, дату начала и окончания, мы должны использовать svn.exe в процессе для получения подробностей журнала
Я использую команду svn log -r {"2007-07-07"}: {2019-11-08}, чтобы получить команду в командной строке.
SourcePath = args[0]; // URL link
var startDate = args[1];
var endDate = args[2];
var svnSource = args[3]; // svn.exe location in my machine
var cmd1 = "cd /";
var cmd2 = "c:";
var cmd3 = string.Concat("cd ", svnSource);
var cmd4 = string.Concat("svn log ", SourcePath, " -r {", startDate, "}:{", endDate, "}");
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "svn.exe";
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.StandardInput.WriteLine(cmd1);
process.StandardInput.WriteLine(cmd2);
process.StandardInput.WriteLine(cmd3);
process.StandardInput.WriteLine(cmd4);
while (! Process.StandardOutput.EndOfStream) {
string line = process.StandardOutput.ReadLine();
if (!string.IsNullOrEmpty(line))
{
if (!process.HasExited)
{
}
}
}
Я ожидаю результата в строке "строка" со всеми значениями журнала, ноя получаю фактическое выходное значение как пустое. точка останова не попадает в саму часть «while (! process.StandardOutput.EndOfStream)» при отладке.
Как решить эту проблему? что я тут не так делаю?