Pagar un tree de Subversión completo excluyendo tags / y twigs /

Estoy trabajando en un tree de código fuente corporativo que contiene cientos de subproyectos de Maven. Como cada subproyecto tiene su propio layout de branches/ y tags/ subcarpetas, todo el tree se presenta de la siguiente manera:

 root/ some/intermediate/dirs/ project1/ branches/ ... tags/ ... trunk/ ... project2/ branches/ ... tags/ ... trunk/ ... ... projectN/ branches/ ... tags/ ... trunk/ ... other/intermediate/dirs/ projectN+1/ ... 

Necesito ver el trunk/ versiones de todos los proyectos, pero desafortunadamente, el command $ svn co protocol://path/to/repo/root/ comtesting versiones completas de tags y twigs, dejándome con miles de treees fuente networkingundantes y teniendo para siempre

Además, N es un número muy grande y no es práctico para mí entrar y verificar el tronco de cada proyecto individualmente.

¿Hay un command svn que me permita omitir tags/ y branches/ treees?

Encontré un blog que explica cómo escribir un progtwig Java para lograr esto utilizando el SVNKit, pero esperaba poder hacerlo con un solo trazo desde la command-line.

Actualización : una solución que utiliza solo los ejecutables svn es preferible, pero si se necesita algún script de shell, preferiría un script por lotes de Windows o, en su defecto, cualquier script bash o zsh haría …

Lo que necesitas son directorys dispersos SVN .

Querrás una estructura de esqueleto y rellenar solo el trunk cuando llegues a ellos. Algo así como (syntax Bourne shell):

 svn co --depth empty protocol://path/to/repo/root/ for in in some intermediate dirs; do svn up --set-depth empty $i; cd $i; done svn up --depth immediates . for i in *; do svn up --depth infinity $i/trunk; done 

Supongo que ninguno de los directorys en cuestión contiene espacios o metacaracteres del shell, agregue citas apropiadas si es necesario.

Tenga cuidado al usar directorys dispersos: es fácil perder la pista de lo que se excluye y lo que realmente no existe …

No sé, qué formatting de salida necesita, pero esta línea de lote puede ayudar:

 dir /s /b /ad |findstr /v /R "\<tags\> \<branches\>" 

findstr puede search "palabras" con "\<word\>" , por lo que no se excluirán más moretags o tagsmore más. Ver findstr /?

o si solo está interesado en subdirectorys * trunk ":

 dir /s /b /ad |findstr "\<trunc\>"