2009-12-07 12 views
11

Tengo algo pasando no puedo explicar.rareza de subversión - svn info revisión más alta que el último cambio rev en la carpeta del proyecto

Tengo una copia de trabajo de mi proyecto - svn update (que dice: Actualizado a la revisión 1895), sé que es la última. Al realizar una svn info en la carpeta del proyecto, la revisión es de 1895, pero el Rev cambiado es 1888.

Inspección del registro utilizando TortoiseSVN muestra 1888 como la última revisión, ni rastro de 1895. Un svn log en 1895 está vacía y un svn diff entre 1895 y 1888 también está vacío, es decir. sin diferencias

¿Cómo terminé de alguna manera con una revisión deshonesta que realmente no ha cambiado nada? Básicamente está causando que el servidor de compilación (cree que está en 1888) no esté sincronizado con mi tarea MSBuild SvnVersion (la revisión de think es 1895).

Cualquier sugerencia apreciada.

Editar: Si Revisión siempre mostrará la última revisión de todo el repositorio, significa que cosas como tarea svnversion MSBuild (que utiliza svnversion.exe, pero muestra un comportamiento similar) no muestran la revisión correcta para cuando tiene un único repositorio de proyecto múltiple, necesitará usar "Última modificación modificada" para su número de versión.

Como resultado, ahora rodando mi propia tarea SvnLastChangedRev MSBuild.

+0

En realidad, no es un gran problema que sea el repositorio completo: si finaliza la revisión, igual obtendrá la copia correcta de su código ese proyecto, y ser capaz de construirlo de nuevo. Si está utilizando algo así como CruiseControl, configurado para construir solo sobre los cambios, entonces no obtendrá una nueva versión para ese proyecto (suponiendo que sea lo único que haya sido verificado) de todos modos. – gregmac

+0

llegaste a algún lado con tu tarea SvnLastChangedRev MSBuild? Como estoy teniendo un problema similar –

+1

@James - sí, he publicado un montón de tareas útiles de MSBuild en CodePlex, que incluye el uno de SvnLastChangedRev. Ver: http://zealanditmsbuild.codeplex.com/ –

Respuesta

20

Esto no es un problema o una rareza ... el número de revisión se aplica a todo el repositorio de Subversion, y por lo tanto, el número de revisión puede ser mayor debido a cambios en el repositorio que el último número de revisión en el que algo cambió en la rama del repositorio en el que está trabajando.

para aclarar, si se comprometen a trunk, con lo que el repositorio para la revisión 10, y luego toda una serie de cambios en branches y tags trae el repositorio a la revisión 1000, luego 10 será la "revisión del último cambio" para la trunk carpeta, pero el número de revisión actual de todo el repositorio sería 1000.

+0

Soy consciente de que el número de revisión es global por repositorio. Pero cuando realizo una actualización en una carpeta de trabajo que está en algunos niveles de jerarquía en el árbol del repositorio, nunca me había dado cuenta de que se actualizaría a la revisión más reciente de forma global, solo a lo último para esa ruta. –

+0

@WimHollebrandse Verá la revisión actualizada de forma global solo cuando ejecute svn update en la raíz de la caja/depósito. Subversion nunca actualizará los metadatos para directorios principales. –

Cuestiones relacionadas