Запуск 'git pull' с использованием shell_exec в PHP не отображает ошибку - PullRequest
1 голос
/ 23 июня 2011

Я создаю сценарий развертывания для github, написанный на PHP. Я использую команду shell_exec для запуска git pull, которая отлично работает.

Моя проблема возникает, когда возникает ошибка с вытягиванием. Если я делаю это в Терминале, я получаю полную ошибку. Например:

git pull origin master
Updating f706749..8468d24
test.txt: needs update
error: Entry 'test.txt' not uptodate. Cannot merge.

Но когда я запускаю ту же команду в shell_exec, вывод усекается до

Updating f706749..8468d24
test.txt: needs update

Сообщение об ошибке обрезается, возможно, из-за ответа из предыдущего ответа. Есть ли способ вернуть полный вывод?

Ответы [ 3 ]

7 голосов
/ 23 июня 2011

10-1 пропущенные строки записываются не в stdout , а в stderr .

. В этом случае вы можете перенаправить stderr на стандартный вывод с

"command    2>&1"

2> & 1 перенаправляет сообщения об ошибках в обычный выходной файл.

1 голос
/ 23 июня 2011

Немного поиска, я мог бы найти ответ на вашу проблему.

Попробуйте захватить stderr.

Надеюсь, это поможет и удачи!

0 голосов
/ 23 июня 2011

Передайте ошибку в ваш вывод.В команде exec используйте 2>, который является потоком «стандартной ошибки».

...