2010-09-22 7 views
68

Tengo una copia de trabajo de un repositorio en mi máquina, y sé que se ha actualizado en el servidor. Me gustaría saber cómo obtener la diferencia entre la nueva versión y la versión en mi copia de trabajo utilizando los argumentos de la línea de comandos svn.Comprobar el diff contra el archivo en el servidor

¿Hay alguna manera de hacerlo?

+0

véase también http://superuser.com/questions/150213/subversion-how-to-compare-differences-between-incoming-changes – craq

Respuesta

104

La copia de trabajo es revisión BASE. La última copia del repositorio es revisión HEAD. Esto comparará su copia de trabajo con la revisión HEAD:

svn diff -r HEAD <file> 

hecho de que a escupir los cambios a la inversa, es decir, que te dice cómo ir de la cabeza a BASE. Entonces, técnicamente usted quiere:

svn diff -r BASE:HEAD <file> 

¿Puede usted ahorrar los trazos del teclado? Solo tú y tu deidad conocen esa respuesta.

+1

+1 por ingenio. seleccionado para corrección –

+9

El archivo de copia de trabajo puede ser diferente de la base (cuando tiene modificaciones locales en el archivo).Debe tener en cuenta que diffiste el archivo sin las modificaciones locales con el servidor. –

+0

La respuesta posterior aborda la pregunta original de modificar modificaciones locales en HEAD – Chadwick

15

La diferencia entre copia de trabajo y HEAD; los cambios que habría que hacerse a lo que es ahora en el repositorio (HEAD), para producir su copia de trabajo :

svn diff -r HEAD --old=<file> 

de posibles intereses, la diferencia entre BASE y HEAD; los cambios que se han marcado en el repositorio desde la última actualización copia de trabajo:

svn diff -r BASE:HEAD <file> 

Y, por supuesto, la diferencia entre BASE y copia de trabajo; los cambios realizados desde la última actualización copia de trabajo:

svn diff <file> 


hay tres versiones que se discuten: BASE, copia de trabajo, y HEAD.

  • BASE: <file> como última desprotección/modificada. Lo copia de trabajo volvería a después de usar svn revert
  • copia de trabajo: las modificaciones locales a <file> que se ha comprobado/modificada en fecha tan reciente como BASE
  • HEAD: últimas modificaciones en el repositorio. Equivalente a BASEiff no se han confirmado cambios ya que <file> se ha verificado/actualizado como copia de trabajo.
Cuestiones relacionadas