2010-11-18 12 views

Respuesta

17

Lo que importa es el contenido del archivo, no la extensión. Ambas extensiones implican que algún tipo de utilidad de diff (diff, git diff, git format-patch, svn diff) produjo la salida.

Muchas utilidades diff producen salidas que se pueden aplicar con el comando patch. Con frecuencia necesitará utilizar las opciones -d y -p en patch para obtener las rutas correctas a la derecha (prefijo de franja, nombre del directorio de destino). Si ve una de esas extensiones en un archivo distribuido en línea, es casi seguro que es una indicación de que es compatible con patch.

La salida de diff de Git es compatible con el parche, pero creo que svn no lo es. Por supuesto, los parches lisos generados por git diff probablemente se apliquen mejor por git apply, y los parches generados por git format-patch están diseñados para su uso con git-am.

5

No hay diferencias. La utilidad diff produce un archivo de parche que se aplica utilizando patch.

+1

Es decir, cuando usa 'diff' para crear el parche, lo llama foo.diff o foo.patch (o cualquier otra cosa). El programa 'patch' no se preocupa. – eaj

+0

así que si se proporciona un archivo diff y se dice que debe usarlo para parchear la fuente, ¿qué implica? ¿Puedo usar el parche -d -p [n] para parchearlo? – Sen

+2

@Sen: "¿Puedo usar' patch' ...? " La mejor respuesta es "pruébalo y mira". Si el parche no se aplica, o 'parche' no puede leerlo, obtendrá errores. Si funciona, funciona. – Cascabel

5

parche es un diff unificado (-u), si usted hace una: diff -u oldfile newfile, con la línea de comandos de parche, se puede aplicar a las diferencias archViejo para convertirse en nuevofichero en otro lugar.

+0

Me gusta esta idea. Los parches son una colección de diffs. No estaba buscando una "extensión correcta", pero tal vez sea una práctica estándar para nombrar. Si esto es de uso común o no, tiene sentido para mí. Avanzaré usando .diff para archivos únicos diffs y .patch para múltiples diffs consolidados. –

Cuestiones relacionadas