Cuando uso 'svn diff' desde la línea de comando, imprime las líneas que han cambiado pero también las 3 líneas sin cambios antes y después para el contexto. Prefiero ver solo las líneas cambiadas sin contexto. No he podido determinar ninguna opción de línea de comando que me permita hacerlo funcionar de esta manera. Los estándares 'diff' y 'cvs diff' hacen lo que quiero de forma predeterminada. Seguramente 'svn diff' puede hacer esto pero me falta algo. Alguien sabe como?Cómo obtener NO contexto al usar svn diff
Respuesta
Después de examinar el enlace útil dado anteriormente por unwind, la respuesta corta es que svn's built -in diff no puede hacer lo que quiero. Puedes decirle que use el diff externo estándar y pasar arg a eso para decirle que no quieres contexto. Pongo el siguiente alias en mi .bashrc y todos ahora funciona bien si uso que en lugar:
alias svndiff='svn diff --diff-cmd=diff -x -U0'
This thread parece llegar a la conclusión de que debe utilizar un comando diff externo para controlar la cantidad de contexto.
prefiero diffs unificados, así que mis dedos siempre escriba
svn diff -x -u
lo que implica que se utiliza un comando externo (GNU diff), creo.
Gracias por el útil enlace. Sorprendentemente, la diferencia incorporada no puede hacer lo que quiero. Me parece violar el principio de Unix de pedir la menor producción. Usar los comandos -x -u me da los mismos resultados que no. 'svn help diff' dime que esos son los valores predeterminados. ¿Tal vez no necesites escribir los caracteres extra después de todo? – DaveBurns
Puede canalizar los resultados de 'svn diff' a grep y escribir una expresión regular para obtener lo que desea. Por ejemplo, intente esto:
svn diff | grep "^[+-\]"
El comando anterior le consigue todas las líneas que comienzan con un '+' o '-' o una '\'. (Necesita '\' si desea ver diferencias como "\ No newline al final del archivo".)
Esto funciona bien si solo desea las líneas modificadas. Sin embargo, no genera la información correcta sobre los números de línea. P.ej. con 3 líneas de contexto antes/después, "@@ -21,7 +21,7 @@" dice que se cambió la línea 24. Sin contexto, verá "@@ -24,1 +24,1 @@" – kamczak
La sugerencia anterior todavía produce el formato de contexto, pero con 0 líneas de contexto. Esta todavía no es la salida de diff tradicional de antes de la subversión.
Lo que funciona para mí es: svn di --diff-cmd=diff -x --normal
El --normal
opción (en el diff que se incluye con OS X) da el formato tradicional de que algunas personas prefieren.
- 1. svn diff no muestra archivos externos modificados
- 2. No se puede svn diff usando meld
- 3. ¿Cómo hacer que diff se vea como svn diff?
- 4. Problemas con WinSCP con estilo de final de línea en Ubuntu Linux al usar SVN Diff
- 5. svn diff: archivo marcado como tipo binario
- 6. Usando Tortoise SVN diff en TFS
- 7. Incluyendo nuevos archivos en SVN diff
- 8. ¿Cómo se obtiene un buscapersonas en svn diff?
- 9. Make SVN Commit también imprime el diff
- 10. Cómo evitar que "svn diff" genere salida Unicode en Windows
- 11. svn diff para un archivo completo?
- 12. `svn merge` produce resultados diferentes que` diff` SVN
- 13. ¿Cómo hacer que git-diff cree un formato de contexto diff?
- 14. diff SVN en 2 repositorios diferentes
- 15. Cómo configurar 'git diff' para usar emacs diff
- 16. SVN: Crear un diff para muchas revisiones
- 17. Git Diff entre HEAD y SVN Master
- 18. Cómo deshabilitar la codificación HTML al usar Contexto en django
- 19. Emular subwcrev al usar git-svn
- 20. ¿Cómo hacer que svn diff muestre cambios remotos?
- 21. ¿Cómo obtener el contexto actual?
- 22. Cómo obtener la lista de archivos modificados en SharpSVN (como svn diff --summarize --xml)
- 23. Cómo aplicar diff hecho por Windows SVN en Linux?
- 24. ¿Cómo decirle al diff de svn que ignore las diferencias en la sangría de espacio/tabulación?
- 25. Cómo usar SVN que no tiene comparación con 3
- 26. Cómo usar google-diff-match-patch C# library?
- 27. Cómo hacer que "git diff" emita el formato normal de diferencia (no unificado, sin contexto)?
- 28. Comando para obtener svn diff del número de revisión actual y anterior
- 29. ¿Cómo comienzo a usar SVN?
- 30. git svn - ¿Puedo usar git y svn al mismo tiempo? no necesita interacción entre git y svn
'-x' es el parámetro de extensión para' svn diff', hace que el token inmediatamente siguiente, aquí '-U0', pasar al comando diff especificado con '--diff-cmd', aquí' diff'. – valid