tag subversion repositorio entre diferencia create crear con como clonar branches svn

subversion - SVN crea el directorio troncal en el repositorio existente



diferencia entre tag y branch svn (6)

Estoy trabajando en un proyecto que no tiene una estructura de directorio trunk / branches / tags, es decir. todo está en la raíz del svn repo.

Me gustaría crear un directorio troncal y en el directorio raíz, y mover todo en el directorio raíz al nuevo directorio troncal.

¿Cuál es la mejor manera de hacer esto?

Lo primero que consideré fue

svn mkdir trunk (for each file or directory that is not called trunk: ) svn mv FILEorDIR trunk/

Pero esto efectivamente elimina todos los archivos y luego los vuelve a agregar. ¿Hay una mejor manera?

Gracias.


Aquí da la forma de usar el método svn + ssh para crear la carpeta troncal en la raíz svn en el terminal Unix. "projectname" es el "identificador" raíz cuando se crea el proyecto en svn:

svn mkdir svn+ssh://username@host/projectname/trunk -m "Create the trunk folder"



Esto es similar a la forma en que lo hice en el pasado. Su solución realmente copia cada archivo, luego elimina el original. Debido a la forma en que Subversion implementa copias, se conserva el historial de cada archivo.

Después de hacer esto, puede señalar las cajas existentes en la nueva ubicación usando el svn switch .


Publicación anterior pero también tuve el mismo problema con todos mis repos estaban en la raíz y no en los troncos. Esto presentaba un problema al probar un comando simple de git svn clone . Después de horas de prueba y error, fue simple:

git svn clone --username byname http://www.MySVNserver.com:81/repos/project1 --no-metadata --trunk=.


Si está utilizando eclipse IDE y Subclipse para SVN, puede continuar y crear carpetas en SVN y mover todos los archivos / dir desde el directorio raíz al directorio troncal y luego seleccionar el ProjectName / trunk en el área de trabajo de eclipse ...


Tuve exactamente el mismo problema y lo resolví después de mirar varias páginas diferentes (esta incluida). Aquí está mi solución:

Nota: Antes de comenzar, si planea usar el svn switch para conservar su copia de trabajo y evitar volver a consultar el repositorio, lo mejor es asegurarse de que su copia de trabajo esté actualizada y no tenga cambios no confirmados.

En adelante con la solución ...

//REPO_URL = The URL for the repo on the SVN server. //In my case it was https://IP_ADDRESS:PORT/svn/my_repo //Make the trunk dir in the root of your SVN repo svn mkdir REPO_URL/trunk -m "making trunk dir" //Move everything from your root dir to your new trunk dir svn move REPO_URL/A_FOLDER REPO_URL/trunk/A_FOLDER -m "moving folders to trunk" svn move REPO_URL/ANOTHER_FOLDER REPO_URL/trunk/ANOTHER_FOLDER -m "blah" svn move REPO_URL/A_FILE.TXT REPO_URL/trunk/A_FILE.TXT -m "moving files to trunk" //Keep going until you''ve moved everything from your root dir to the trunk dir...

Entonces, ahora, en su servidor SVN, todo está en la carpeta de troncales. ¡Dulce!

Pero mi repositorio es de 60GB y en un servidor remoto. Prefiero no verlo de nuevo. svn switch le permitirá señalar su copia de trabajo existente al nuevo directorio trunk para que pueda seguir trabajando con la copia que tiene. Vaya a la carpeta raíz de su copia de trabajo y ejecute svn switch REPO_URL/trunk --ignore-ancestry . Debería decir At revision X donde X es la revisión después de mover todos sus archivos desde el directorio raíz al directorio troncal. ¡Eso es! Tal vez hacer una actualización de SVN para una buena medida :)