update una tortoise revertir repositorio eliminar deshacer descartar copia como comandos carpeta cambios archivos svn

svn - una - ¿Cómo recuperar los archivos modificados en el rango de revisiones en Subversion?



svn eliminar archivos del repositorio (4)

¿Cómo recuperaría todos los archivos del repositorio, junto con la estructura de la carpeta, modificada en un rango de revisiones, digamos desde 1000-1920?


Aquí hay una solución que le dará un árbol que contiene solo aquellos archivos que existen en r1920 y que fueron cambiados o agregados entre r1000 y r1920. Es un script bash, por lo que necesitarás Linux y las herramientas GNU o algo similar.

#!/bin/bash repo=https://zsvn.brz.gv.at/svn/ju-vj/trunk/vj lo=1000 hi=1920 wc=changed_files$hi # all files as of revision $hi svn export $repo@$hi $wc (# files that have changed svn diff --summarize -r$lo:$hi $repo / | egrep -e "^[AM]" / | cut -c7- / | sed -e "s,$repo,," / | sed -e "s, /,," / | while read p do # omit directories, emit only files if [[ -f $wc/$p ]] then echo "$p" fi done # all files (omit directories) svn ls -R $repo@$hi | egrep -v -e "/$" ) / | sort | uniq -u / | (cd $wc ; xargs rm) # The last lines select only those files which are unique when the two # lists are combined, that is all those files that are in revision $hi # and have not changed. These are then fed to rm by xargs to remove # them. # what''s left is an export containing only those files that changed or # were added between revisions $lo and $hi.


Eso depende un poco de lo que pienses hacer con los datos. Si solo está interesado en inspeccionar los datos manualmente, puede hacer

svn log -r1000:1920 -q -v | grep " M" | sort -u

para ver todos los archivos modificados, por ejemplo.

Si desea hacer algo más programáticamente, puede pasar el indicador --xml al registro svn y obtener todos los datos de registro como salida XML:

svn log -r1000:1920 --xml > log1000-1920.xml


Si solo desea la lista de rutas modificadas, eche un vistazo a la opción --summarize en diff.

svn diff --summarize -r1000:1920 https://my.org/myrepo/