2009-08-30 13 views
10

En mi repositorio, digamos que tengo esto:Subversion - Pedido de un directorio padre

Animal 
    Dog 
    Beagle 
    Hound 
    ... 

que permite decir que el check out perro a un directorio de trabajo y me di cuenta, gritos, tenía muchas ganas de pago y envío de animales.

Puedo eliminar mi copia de trabajo, el directorio del perro y salir Animal, pero ¿hay forma de que pueda hacerlo sin borrar y volver a realizar la comprobación?

Si mi copia de trabajo de Dog tiene Animal como carpeta principal y pago Animal sin borrar Perro, aparece algo como "la subversión no pudo agregar el mismo nombre de la versión del directorio ya existe".

También estoy usando tortuga. Gracias.

+3

¿Cuál es el problema con la eliminación y el control de nuevo? Si ya ha realizado cambios, confírmelos y vuelva a comenzar. – kajaco

+1

No es un problema. Eso es lo que hice y funcionó. Solo me preguntaba si había una forma mejor, o si había una forma más correcta de hacerlo. – Steve

Respuesta

4

Esto no es posible directamente.

La manera más fácil es eliminar su copia de trabajo y hacer un nuevo pago de Animal.

Si tiene cualquier cambio en Dog que le gustaría guardar, mover Dog en una ubicación temporal, pago y envío Animal y luego copiar Dog de nuevo en el directorio Animal.

2

Está buscando svn switch, que actualiza su copia de trabajo para reflejar una nueva ruta. Sin embargo, los archivos modificados no se tocan. En TortoiseSVN, haga clic derecho y seleccione "Cambiar ..." en el menú contextual.

El caso de uso más común para svn switch es cambiar entre las ramas que están enraizadas desde el mismo punto, para que pueda tener diferentes vistas del mismo código. Pero puede cambiar entre rutas arbitrarias en su repositorio.

+1

Pero mi directorio principal, Animal, no está bajo control de versión, por lo que no puedo cambiarlo, al menos no desde Tortoise. Tal vez a través de la línea de comandos? – Steve

+1

Estoy confundido. ¿Cómo puede su repositorio tener Animal en él si no está bajo control de versión? ¿Es eso un error tipográfico? –

+1

Hice una copia (rama) para crear Animal. En mi copia de trabajo, Animal no tiene el directorio .svn. Es una carpeta que tiene el mismo nombre que la carpeta del repositorio. Entonces mi directorio de trabajo es un duplicado exacto de la estructura del repositorio, pero revisé Dog to Dog. Espero que tenga sentido. – Steve

0

Encontré para evitar la descarga desde el servidor svn de lo que ya está en mi disco, luego la actualización o el proceso de compra se hace usando --depth empty. Así que algo así como: svn co --depth empty Animal ; cd Animal ; svn update --depth empty Dog

De todos modos, la idea es obtener Dog como un directorio en Animal/.svn/entries.

Este "--depth empty" mantiene al tanto SVN descargar el contenido real, pero SVN hace que el subdirectorio (en este caso, Dog) y SVN sí pone una entrada para el Dog subdirectorio en Animal/.svn/entries.

Luego reemplace el subdirectorio Dog con la copia que ya tiene.

Puede comprobar que esto funciona golpeando uno de los archivos en algún lugar en Dog y haciendo un svn update en el directorio Animal. El archivo dañado debe ser retirado del servidor svn.

+0

No funciona: luego aparece 'Updating '.': Omitido 'trunk' - Se encontró una copia de trabajo que obstruía En la revisión 13370. Resumen de conflictos: Trayectos omitidos: 1' al hacer' svn up' en 'Animal'. –

+0

Ha pasado mucho tiempo, por lo que no estoy seguro de cuál es el problema. SVN debería estar haciendo los directorios de Animal y Dog, ¿no es así? Entonces no debe haber ninguna copia de trabajo obstructiva. Otra idea es que SVN ha cambiado desde '13 por lo que este truco ya no funciona. –

0

Sí, puede asignar el directorio principal.

Para hacer eso, solo necesita eliminar el directorio .svn del directorio "Perro" (hijo) y hacer SVN Update en el directorio principal. Hará que el archivo existente sea Versioned y descargará el contenido delta del directorio Dog del servidor SVN.

Nota: debe tener una estructura de directorios exacta como estructura de directorios SVN.

Cuestiones relacionadas