¿Puede el "parche" ser idempotente?

¿Puede el "parche" ser idempotente?

Puede patchinvocarse con idempotencia; es decir, ¿existe alguna combinación de opciones que hará que las invocaciones repetidas de patchtengan el mismo efecto que una única invocación de patch(para una diferenciación no vacía)?

Respuesta1

Algunos parches¹ se pueden aplicar varias veces, por lo que no se puede garantizar; pero

patch -N -r- -i your.patch

se aplicará your.patch, ignorando cualquier fragmento que ya se haya aplicado.

-Nevita intentar revertir un parche ya aplicado y -r-omite guardar fragmentos fallidos en .rejarchivos.

El comando equivalente con opciones largas es

patch --forward --reject-file=- --input=your.patch

Cuando se ejecuta de esta manera, si patchse ignoran los fragmentos, indicará un error. Si el único "error" es ignorar los fragmentos, saldrá con el código 1 (al menos un fragmento falló o hubo conflictos de fusión); Los errores más graves se indican con el código de salida 2.


¹ Parches o fragmentos sin contexto, o donde las líneas agregadas coinciden con el contexto (p.ejun parche que agrega una función polimórfica donde las primeras líneas de la declaración coinciden con la siguiente función).

información relacionada