Как узнать в ответе процесса C#, привел ли git rebase к конфликту или успешно
Я запускаю команды git, используя Process
от cmd.exe
, все работает нормально, теперь я пытаюсь перебазировать ветку и хочу знать, прошла ли перебазировка успешно, а затем хочу запустить git push
как следующий шаг.
Есть ли способ узнать, удалось ли git rebase без конфликтов из ответного сообщения Process
?
Потому что, когда он добился успеха, он дает такой ответ Successfully rebased and updated refs/heads/qa.
Я проверил этот вопрос. Есть ли что-то вроде "git rebase --dry-run", которое заранее уведомляет меня о конфликтах?
В ответе указано, что если это ненулевой ответ, это означает, что он не был успешным, но rebase не дает ответа в этом формате 0/1, он возвращает текст.
Мой код это
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c git rebase master");
procStartInfo.FileName = "cmd.exe";
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
// What should I check here to make sure rebase happened without conflicts
var response = await proc.StandardOutput.ReadToEndAsync();
1 ответ
Я думаю, вам нужно проверить свойство Process.ExitCode. В большинстве случаев в случае ошибки код будет отличным от нуля. Думаю, git не исключение.