de PhpStorm "ignoran los espacios en blanco" simplemente funciona. Ignora automáticamente las diferencias en el retorno de carro/EOL/newline/what-have-you. Puede perder el tiempo jugando con los comandos arcanos Unix o lo que sea, o simplemente puede obtener algo que realmente funciona y seguir adelante con la vida.
- El uso de cualquiera de las soluciones mencionadas anteriormente falló en Mountain Lion (incluida la marcada como la respuesta correcta). Todos los enlaces de descarga para "Diff-npatch" fallaron. (Encontré http://webperso.easyconnect.fr/bdesgraupes/tools.html pero realmente no me gusta la idea de tener que recurrir al uso de una herramienta diff que no se puede invocar desde la línea de comandos y así integrar con cualquier herramienta IDE o VCS que pueda estar usando, como BBEdit, SourceTree, o SmartSVN - todos los cuales, por cierto, no hacer caso omiso de las nuevas líneas con su herramienta integrada de diff
Sí, mis saltos de línea son \ r, pero ¿y qué Arrr Si el software es demasiado estúpido para darse cuenta.?! que \ r == \ n entonces yo sólo voy a utilizar diferentes programas informáticos que es lo suficientemente inteligente como
PhpStorm era el único software que tenía una herramienta de diferencias que "sólo funcionó." - que es lo que esperaba Software Mac para hacer. Espero Mac soft ware a simplemente trabaja. Utilizo una Mac para poder hacer mi trabajo en lugar de aprender los comandos de la terminal arcana en cada vuelta, que están casi todos mal documentados, esperando que entiendas cómo deben formatearse los comandos sin ningún ejemplo claro, por lo que nunca se sabe si lo estás haciendo mal o si el comando simplemente no funciona como cualquier otro software defectuoso. Tome este ejemplo de "hombre diff":
-I RE --ignore-matching-lines=RE
Ignore changes whose lines all match RE.
OK, así que después de leer esto, no tengo ni idea de lo que significa. No hay un ejemplo de su uso. ¿Qué es "RE"? No dice en ninguna parte.
Luego está esta joya:
--GTYPE-group-format=GFMT
Similar, but format GTYPE input groups with GFMT.
--line-format=LFMT
Similar, but format all input lines with LFMT.
--LTYPE-line-format=LFMT
Similar, but format LTYPE input lines with LFMT.
LTYPE is `old', `new', or `unchanged'.
GTYPE is LTYPE or `changed'.
GFMT may contain:
%< lines from FILE1
%> lines from FILE2
%= lines common to FILE1 and FILE2
%[-][WIDTH][.[PREC]]{doxX}LETTER
printf-style spec for LETTER
LETTERs are as follows for new group, lower case for old group:
F first line number
L last line number
N number of lines = L-F+1
E F-1
M L+1
LFMT may contain:
%L contents of line
%l contents of line, excluding any trailing newline
%[-][WIDTH][.[PREC]]{doxX}n
printf-style spec for input line number
Either GFMT or LFMT may contain:
%% %
%c'C' the single character C
%c'\OOO'
the character with octal code OOO
que podría hacer ningún sentido de este pasaje. ¿Cuál es la "entrada"? ¿Son ambos archivos o solo el archivo "para" o solo el archivo "de"? ¿A qué se refiere "similar"?¿Qué significa "es" en la oración, "GFMT" es "LTYPE o` cambiado '"? ¿Significa que "puede ser reemplazado por"? Si es así, ¿por qué no está "GFMT" entre comillas o corchetes, etc.? Como no se da ningún ejemplo, no hay forma de saberlo; la redacción de la documentación es totalmente ambigua. ¿Qué significa "GFMT puede contener" ... significa? ¿"Contener" significa que el texto que reemplaza el acrónimo GFMT puede contener eso? Sin un claro ejemplo, es completamente inútil.
¿Por qué siquiera molestarse en escribir una página de hombre si la va a hacer tan críptica y ambigua que es inútil para cualquiera que no sepa cómo usar el software, básicamente? En ese punto, no es un manual; es solo una página de referencia rápida para los tipos que escribieron el software para que puedan recordar cómo usarlo. Supongo que suponen que solo leerá el código fuente si quiere saber qué es lo que realmente hace.
Mi tiempo es valioso. Preferiría simplemente pagar el dinero para tener un software que realmente funcione correctamente y tenga la documentación adecuada.
Debido a que estos todos fracasaron:
diff -d --strip-trailing-cr --ignore-all-space --from-file=rest.phtml test.phtml
... no pudieron ignorar \ r caracteres.
diff -wd --strip-trailing-cr --ignore-all-space --from-file=rest.phtml test.phtml
... no se pudieron omitir los caracteres \ r.
diff -wd --suppress-common-lines --strip-trailing-cr --ignore-all-space --from-file=rest.phtml test.phtml
... no se pudieron omitir los caracteres \ r.
diff -wd test.phtml rest.phtml --suppress-common-lines --strip-trailing-cr --ignore-all-space
... no se pudieron omitir los caracteres \ r.
diff -awd test.phtml rest.phtml --suppress-common-lines --strip-trailing-cr --ignore-all-space
... no se pudieron omitir los caracteres \ r.
De hecho, si fueran \ n caracteres, también fallaron cuando se agregaron \ n caracteres.
Dónde test.phtml ==
foo
bar
y == rest.html
foobar
El comando "diff" siempre te da algo así como:
* 1,2 **! foo! bar \ Sin nueva línea al final del archivo
--- 1 ----! foobar \ Sin nueva línea al final del archivo
... ¡falló!
Si tiene algún archivo con el estilo de Windows \ r \ n, esto terminará reemplazando cada salto de línea de Windows con \ n \ n, que probablemente no sea el efecto deseado. – Jay
Cierto, pero estaba teniendo en cuenta que solo mencionó las terminaciones de línea de estilo Mac y Unix ... – UncleZeiv
no, son todas las Macs, y ya tenía una mac2unix que era muy similar (utiliza tr en lugar de sed, pero sí ... .) –