Estoy creando un script de deployment para github, escrito en PHP. Estoy usando el command shell_exec
para ejecutar git pull
que funciona bien.
Mi problema ocurre cuando hay un error con el tirón. Si lo hago en Terminal, obtengo el error completo. Por ejemplo:
git pull origin master Updating f706749..8468d24 test.txt: needs update error: Entry 'test.txt' not uptodate. Cannot merge.
Pero cuando ejecuto el mismo command en shell_exec
el resultado se trunca a solo
Updating f706749..8468d24 test.txt: needs update
El post de error se corta, posiblemente porque es una respuesta de la respuesta anterior. ¿Hay alguna forma de devolver la producción completa?
10-1 las líneas faltantes no están escritas en stdout sino en stderr .
En ese caso, puede networkingirigir el stderr a stdout con
"command 2>&1"
El 2> y 1 networkingirige los posts de error al file de salida normal.
Al search un poco, podría haber encontrado la respuesta a su problema.
Intenta capturar stderr.
Espero que esto ayude y buena suerte!
Transmite el error a tu salida. En el command exec use 2> que es el flujo de "error estándar".