usar tutorial tortoise subversion estructura español create como branches svn revision subdirectory

tutorial - SVN: ¿Es posible obtener la lista de números de revisión para una ruta determinada?



tortoise svn merge branch to trunk (5)

Es posible que desee mirar svn list . Entonces para su propósito:

$ svn list --verbose file:///var/svn/repos 16 sally 28361 Jan 16 23:18 README.txt 27 sally 0 Jan 18 15:27 INSTALL 24 harry Jan 18 11:27 examples/

Esto enumera la última revisión (principal) de cualquier archivo.

Estoy creando una herramienta PHP que se conecta a un repositorio, descarga la lista de confirmaciones y las almacena localmente. Sin embargo, debido a la posibilidad de que ciertos repositorios sean ENORMES y atrapen sus resultados de registro en un largo tiempo de espera y posibles tiempos de espera / errores, me gustaría descargar cada mensaje de confirmación utilizando solicitudes asíncronas.

Entonces, tengo un punto de inicio y final en el historial de revisión, y puedo tomar todos los registros como este:

svn log -r <from_revision>:<to_revision> <REPO_URL>

... y posiblemente terminaré con un archivo XML que es tan grande que llevará mucho tiempo descargar, mucho tiempo y muchos recursos para analizar, y mucho tiempo para almacenar.

Si conozco el inicio y el punto final, puedo crear un ciclo for () para obtener revisiones una por una:

svn log -r <revision> ...

PERO, dado que no sé qué revisiones específicas existen para una ruta determinada, recibiré un error. Puedo hacer que la aplicación ignore ese error durante la actualización, pero es un hack desagradable y publicará solicitudes y esperará las respuestas de todos modos, lo cual no es bueno en absoluto.

Entonces, necesito algo como esto:

  • "dame la lista de números de revisión para esta ruta", O:
  • "dame la lista de números de revisión para esta ruta, entre y

De esa manera, podría hacer una serie de revisiones válidas para la ruta del repositorio y obtenerlas una a una.

Todas las sugerencias son bienvenidas, gracias de antemano.


Si tiene acceso al árbol de repositorio en su servidor de Subversion, puede usar el svnlook history para obtener una lista de números de revisión.

Se pueden encontrar más detalles en http://svnbook.red-bean.com/en/1.1/re49.html .


svn log url -l limitNumber - r fromReversion:toReversion

si U quieres encontrar la reversión (versión) más vieja (más pequeña) por ejemplo

svn log url -l 4 -r someVersion:1 or svn log url -l 4 -r 99: 3

fromReversion mayor que toReversion si quieres encontrar la próxima reversión más nueva (más grande)

svn log url -l 4 -r someVersion:head or svn log url -l 4 -r 3:99 fromReversion lower than toReversion


Creo que su mejor opción sería hacer el siguiente svn log -l 100 0:{$newest} ./ Que recuperará los primeros 100 registros para un directorio o archivo determinado. luego lea el último número de revisión devuelto, luego solicite los siguientes 100 svn log -l 100 {$last_ret_log}:{$newest} ./

de esa manera obtienes 99 nuevas entradas de registro con cada solicitud, pero no las obtendrás todas.


Solo he estado tratando de obtener un resultado similar. Solo quiero todos los números de revisión para una rama en particular.

Encontré lo siguiente para ser bastante útil.

svn log <svn_server_path> | grep "^r[0-9]/+ | " | cut -d'' '' -f1 | cut -c2- > revisions.csv

Esto me da un archivo con todos los números de revisión en líneas separadas.

Con suerte, usted u otra persona lo encontrarán útil.

Nuestro repositorio tiene más de 25000 revisiones y lleva un par de segundos producir este archivo.