¿Cómo puedo obtener una lista de todos los svn: externos (recursivamente) en un directorio? ¿Hay alguna utilidad para esto?
(Estoy usando Windows (y tortuga))
Tengo un montón de svn: externals que se vinculan a diferentes partes compartidas de mi proyecto y cuando me ramifico, generalmente es bastante propenso a errores encontrar todos los externos y cambiarlos para que el enlace a las rutas dentro de la nueva rama.
svn
tortoisesvn
Niels Bosma
fuente
fuente
Respuestas:
Haga lo siguiente en la raíz de su copia de trabajo:
Como se analiza en los comentarios a continuación, esto no incluye los externos en los externos.
Nota para los usuarios de TortoiseSVN: hay una opción en el instalador de TortoiseSVN para instalar también el cliente de línea de comandos SVN. Esta opción no está habilitada de forma predeterminada.
fuente
Cambiar manualmente todas esas propiedades externas suena tedioso. ¿Ha mirado la nueva funcionalidad para externos agregada en Subversion 1.5?
¿Quizás uno de esos ayudaría? Supongo que depende exactamente de cómo se está ramificando y cómo se ve la estructura de su repositorio.
fuente
Mi solución para TortoiseSVN:
Abra el cuadro de diálogo "Rama / etiqueta ..." desde el menú contextual de SVN. El cuadro de diálogo inferior muestra todos los externos, incluidos los externos anidados.
fuente
svn propget svn:externals -R
.Tal vez, como solución alternativa, podría estructurar su proyecto de tal manera que todos los externos estén configurados en la misma carpeta, por ejemplo, en la carpeta del proyecto justo debajo de Trunk. (Por cierto, esto no significa que todas las carpetas externas tengan que tener la misma profundidad). Luego puede hacer clic derecho en la carpeta de su proyecto, luego Propiedades ..., luego la pestaña Subversion, luego Propiedades ... luego haga doble clic en svn: externals.
fuente
Usé la respuesta de Wim Coenen y escribí el siguiente script para crear una lista de todas las revisiones:
Afortunadamente, no tengo externos anidados, así que no tuve que probar esto y supongo que no funcionaría. Pero si lo necesita, probablemente sea suficiente con llamar a esta función de forma recursiva. Además, nunca probé con nombres de archivo que necesiten escapar. Probablemente no funcione entonces.
DESCARGO DE RESPONSABILIDAD: Sé que la pregunta original era sobre Windows, y el script de shell no funcionará allí a menos que esté usando cygwin o similar.
fuente
Tomé la respuesta de Daniel Alder , eliminé las llamadas a svnversion y la hice recursiva (NOTA:
read a b c d e
no funciona si hay un espacio en la fuente o en el destino). Este es un script bash, por lo que necesitará algo como Cygwin o usará el subsistema de Windows para Linux .fuente