list - subir - tortoise svn server
¿Cómo listar todos los archivos en un repositorio SVN remoto? (5)
Esto lista todos los archivos recursivamente:
svn ls -R URL-OF-REPO
Accedo a un gran repositorio SVN remoto. Como por lo general solo necesito un pequeño subconjunto de su contenido, hice un "pago disperso":
svn checkout --depth empty svn+ssh://... src
Cada vez que necesito una carpeta del repositorio, puedo hacerlo
svn up folder
Y cuando ya no lo necesito lo uso.
svn up --set-depth exclude folder
Pero ahora necesito una lista completa de todos los archivos en el repositorio y no quiero hacer una comprobación completa solo para obtener los nombres de archivos y carpetas.
Ya probé svn ls -R
que de hecho enumera algunos archivos que no revisé, pero aún faltan algunos. Lo sé porque muestra todo en el directorio actual. Ahora podría ejecutar semi-manualmente svn ls
y svn up --depth empty
para cada directorio nuevo, pero me pregunto si hay alguna alternativa mejor.
A diferencia de ¿Cómo enumero todos los archivos comprometidos en el repositorio? Solo me interesa el contenido actual del repositorio y no tengo acceso a svnadmin
. Tampoco puedo instalar software en el servidor de repositorio.
Puedes probar mi utilidad fast-svn-crawler , es mucho más rápido que "svn list --recursive".
$ svn-crawler https://myrespository.my.com/Myproject
Si desea obtener una lista completa de todos los archivos y no las carpetas, puede canalizar svn list y el comando grep de la siguiente manera:
svn list -R svn://url/to/your/main/folder/on/repo | grep ''[^//]$''
la ruta a las carpetas listadas por
svn list -R svn: // url / to / your / main / folder / on / repo
siempre termina con "/" mientras que la ruta del archivo no lo hace. La salida se pasa como una entrada a
grep ''[^ / /] $''
que excluye todos los caminos que tienen un "/" al final; Las rutas restantes solo están relacionadas con archivos.
Ejemplo: supongamos que tenemos un repositorio llamado myrepo en my.svnserver.com como dominio, y queremos obtener todos los archivos listados en un subdirectorio de myrepo, es decir, mysubdir : el comando es
svn list -R svn://my.svnserver.com/myrepo/mysubdir | grep ''[^//]$''
Además, si canaliza el resultado al comando wc -l (que imprime el número de nuevas líneas, ya que cada línea de salida contiene solo una ruta), puede obtener el número de todos los archivos en mysubdir , como este
svn list -R svn://my.svnserver.com/myrepo/mysubdir | grep ''[^//]$'' | wc -l
Sin URL
svn list --recursive -r HEAD
svn list --recursive https://myrespository.my.com/Myproject
Creo que funciona para los subdirectorios actuales y todos los que he probado. Éste también enumera todas las ramas y etiquetas, y todos sus subdirectorios y archivos.