2013-04-23 3 views
0

Я пытаюсь проверить, обновлен ли svn, и я не хочу использовать SharpSVN. Я пытаюсь использовать класс Process.Проверка обновления SVN C#

В партии, это то, что я обычно делаю: svn st -u <svn path> | find "*"

Вот мой код:

private void checkSVN() 
{ 
     Process newProcess= new Process(); 
     newProcess.StartInfo.FileName = "svn"; 
     newProcess.StartInfo.WorkingDirectory = ""; 
     newProcess.StartInfo.Arguments = "st -u C:\\SVN | find " + @"""*"""; 
     newProcess.StartInfo.UseShellExecute = false; 
     newProcess.StartInfo.RedirectStandardOutput = true; 
     newProcess.OutputDataReceived += new DataReceivedEventHandler(parseStandartOutput); 

     newProcess.Start(); 
     newProcess.BeginOutputReadLine(); 
} 
private static void parseStandartOutput(object sendingProcess, DataReceivedEventArgs outLine) 
{ 
    if (!String.IsNullOrEmpty(outLine.Data)) 
     m_svnOutput += outLine.Data + " "; 
} 

Проблема заключается в том, что find "*" не работает - newProcess.StartInfo.Arguments установлен в "st -u C:\\SVN | find \"*\*"", и это, конечно, не работает.

Любые идеи?

+1

Почему вы не хотите использовать SharpSVN? потому что он выглядит как лучший вариант http://stackoverflow.com/questions/2074891/how-to-access-file-information-in-a-pre-commit-hook-using-sharpsvn/2075198#2075198 другие библиотеки: http : //stackoverflow.com/questions/211765/svn-libraries-for-net –

ответ

0

Вы пробовали просто

 newProcess.StartInfo.Arguments = "st -u C:\\SVN | find \"*\""; 
+0

Да, у меня есть ... То же самое ... Переменная 'm_svnOutput', которая должна иметь результаты, пуста, поэтому я знаю, что она Не работай. Что касается 'newProcess.StartInfo.Arguments' - я все равно получаю' 'st -u C: \\ SVN | find \" * \ * "" 'там ... – Idanis

Смежные вопросы