Ejecutar "parche" sin generar files * .orig y * .rej

¿Es posible decirle a patch no genere files .orig y .rej ? Me resulta extremadamente molesto que el parche los cree.

Si no le está dando ninguna opción de patch no sea -pN , solo crea esos files cuando un parche no se puede aplicar limpiamente.

Entonces, una opción es dejar de crear (o aceptar) parches defectuosos. 🙂

De vuelta en el mundo real, esta es una característica. Cuando el patch(1) no puede aplicar un segmento de parche al file original, guarda la copy del file original temporal de forma duradera como *.orig , vuelca el segmento rechazado a *.rej y continúa tratando de aplicar segmentos de parche. La idea es que puede abrir el file *.rej y completar el process de parche de forma manual copyndo partes y piezas en el file parcheado. El file *.orig también puede ser útil cuando el process de parche arruina accidentalmente algo, y debe consultar la versión original para solucionarlo.

No siempre arreglo un parche incorrecto con el text de los *.rej y *.orig , pero es bueno tenerlos en caso de que los necesite.

Una vez que he arreglado un parche malo, doy este command en la raíz del proyecto para limpiarlo rápidamente:

 $ find . \( -name \*.orig -o -name \*.rej \) -delete 

Lo uso con la frecuencia suficiente para que permanezca en mi historial de Bash. Me parece que Ctrl-R o r i es suficiente para encontrar el command en mi historial.

Para decirle al parche que no produzca copys de security simplemente omita las opciones -b y any --backup-...

Para indicarle que no cree files .rej , agregue -r - opción al command.

Estoy atascado con el parche v2.5.4 donde -r - hace que cree files de rechazo llamados - .

Encontré que --reject-file= ie value vacío causa que el parche falle con el código de salida 2 SI intenta escribir un file de rechazo. Si no hay rechazos, funciona como se esperaba. Si bien no es una solución completa para la versión anterior del parche, en algunas circunstancias esto puede ser aceptable o deseado.

Lo mejor que se me ocurrió (es cierto, una forma de barrer la tierra debajo de la alfombra) es usar -r <tmpfile> , es decir:

# patch -r /tmp/deleteme.rej -i patchfile filetobepatched

ya que en v2.5.8, -r - realidad crea el - file.

parche -p1 -B / dev / null -r – <file.patch