2010-01-07 17 views
5

Algo que no entiendo acerca de cómo SVN muestra la salida de registro. Supongamos que tengo un proyecto en la revisión 10. Entonces alterar una subarchivo en el proyecto, que se encuentra ahora en la revisión 11. El comando svn log ahora me muestra lo siguiente:¿Alguien puede explicar esta salida de registro SVN?

svn log -vv 
      r10 ... 
      ------ 
      r9 ... 
      ------ 
      r8 ... 

Sin embargo, el cambio más lastest (R11) aparece solo si especifico el nombre de archivo:

svn log -vv ChangedFilename 
      r11 ... 

¿No debería aparecer r11 en el primer comando también?

Respuesta

23

explicación está en el manual:
http://svnbook.red-bean.com/en/1.5/svn.tour.history.html#svn.tour.history.log

¿Por qué svn iniciar sesión No mostrarme ¿Qué acabo de comprometer?

Si realiza una confirmación e inmediatamente registro de tipo SVN sin argumentos, que puede notar que su más reciente comprometerse no aparece en la lista de mensajes de registro. Esto se debe a una combinación del comportamiento de svn commit y el comportamiento predeterminado del registro svn . En primer lugar, cuando se confirme los cambios de el repositorio, golpes SVN sólo el revisión de archivos (y directorios) que se compromete, por lo general, el directorio padre se mantiene a la mayor revisión (Vea la sección llamada “Actualizaciones y se compromete están separados "para una explicación de por qué). svn log then se predetermina a recuperar el historial de el directorio en su revisión actual, y por lo tanto no ve los nuevos cambios comprometidos . La solución aquí es actualizar su copia de trabajo o proporcionar explícitamente un número de revisión a svn log utilizando la opción --revisión (-r).

2

Veo el mismo comportamiento que usted, si modifico un archivo, lo confirmo y luego vuelvo a ejecutar el registro. Parece que este comportamiento desaparece una vez que se ha producido una 'actualización svn' en la carpeta.

¿Quizás el registro no se actualiza cuando se compromete, solo cuando actualiza?

Here is the documentation on svn log (for release 1.5)

También puede obtener el registro del propio repositorio especificando una dirección URL

svn log URL[@REV] [PATH...] 
+0

Ahh, eso tiene sentido, suponiendo que svn log lea su registro local y su valor global leído por svn log (sin el nombre de archivo) no se actualizará hasta que hable con el servidor con svn update. –

3

Just FYI, probé usando svn 1.6 y una svn update + svn log funciona de hecho como lo indica la documentación. Para evitar tener que hacer una actualización, intente con "svn log -r PREV: HEAD" y eso debería desplegar los últimos registros.

Cuestiones relacionadas