Ésto está weno.
Estaba comparando versiones de un proyecto con git diff y tirándolos a un archivo único así
git diff ~/ruta/archivo >> ~/ruta/resultado.txt
lo cual se puede hacer a mano si son pocos archivos: simplemente hacemos git status, copiamos los nombres de los archivos que tienen diferencias y los copaimos en vez de ~/ruta/archivo arriba. Pero llegó un punto en que eran demasiados archivos…
Entonces caché que con
git diff --name-only
puedo traerme una lista con los nombres de los archivos con diferencias, separados por saltos de línea.
Luego ¿cómo recorrerlos y ejecutar el mismo comando para cada uno de ellos? ¿Necesito hacer una shell para ésto?
La consola de Linux (Debian Wheezy) tiene el comando xargs, que sirve justamente para ésto.
Se le pasan los argumentos separados por espacio o salto de línea vía pipey ejecuta el comando a continuación para cada uno de ellos
git diff --name-only | xargs git diff >> ~/ruta/resultado.txt
y funka! Inspiración >>