¿Cómo creo una rama en SVN?¿Cómo creo una rama en SVN?
Respuesta
La ramificación en Subversion se ve facilitada por una función de copia muy, muy ligera y eficiente.
La ramificación y el etiquetado son efectivamente los mismos. Simplemente copie una carpeta completa en el repositorio a otro lugar en el repositorio usando el comando svn copy
.
Básicamente esto significa que es por convención lo que significa copiar una carpeta, ya sea una copia de seguridad, etiqueta, rama o whater. Dependiendo de cómo quiera pensar en las cosas (normalmente dependiendo de la herramienta SCM que haya utilizado en el pasado), debe configurar una estructura de carpetas dentro de su repositorio para respaldar su estilo.
estilos comunes son tener un montón de carpetas en la parte superior de su repositorio llamado tags
, branches
, trunk
, etc - que le permite copiar sus trunk
enteros (o subconjuntos) en el tags
y/o branches
carpetas. Si tiene más de un proyecto, es posible que desee replicar este tipo de estructura en cada proyecto:
Puede llevar un tiempo acostumbrarse al concepto, pero funciona, solo asegúrese de que usted (y su equipo) claro sobre las convenciones que vas a utilizar. También es una buena idea tener una buena convención de nomenclatura, algo que le explique por qué se realizó la sucursal/etiqueta y si aún es apropiada; considere formas de archivar ramas obsoletas.
Subversion hace que sea más fácil (algunos piensan demasiado fácil) crear una nueva sucursal con el comando svn copy.
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
-m "Creating a branch of project"
Siguiente uso 'svn switch svn + ssh: //host.example.com/repos/project/branches/NAME_OF_BRANCH .' (si desea cambiar el pago actual a la nueva sucursal) o' svn checkout svn + ssh: // host .example.com/repos/project/branches/NAME_OF_BRANCH' (si desea tener una nueva bifurcación en un directorio aparte) para comenzar a trabajar en br recién creado Anch. –
*** Nota: *** en algunos casos, necesitarás usar la opción ** '--parents' ** con' svn copy'! –
por alguna razón utilicé este cmd y no funcionó, pero cuando cambié el svn + ssh a solo https, funcionó. ¿Hice algo mal? ¿Cuál es el significado de svn + ssh? ¡Gracias! –
Lo normal sería copiarlo a svn + ssh: //host.example.com/repos/project/branches/mybranch por lo que se puede mantener varias ramas en el repositorio, pero su sintaxis es válida.
Aquí hay algunos consejos sobre how to set up your repository layout.
Si aún planea en la fusión de su rama, le recomiendo que mire esto:
escucho Subversion 1.5 acumula más del registro de fusiones en, no tengo experiencia con eso. Mi proyecto está en 1.4.x y svnmerge.py es un salvavidas!
Suponga que desea crear una rama de un nombre de tronco (como "prueba") a continuación, utilizar:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
svn cp /trunk/ /branch/NEW_Branch
continuación Si usted tiene algunos cambios locales en el tronco utilizar Rsync
para sincronizar los cambios
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
No es necesario utilizar 'rsync' de esta manera. 'svn cp' también copiará cualquier cambio local. –
@KevinPanko No copiará los cambios no confirmados. –
Lo hace, confirmado con svn, versión 1.8.5 –
- Crear una nueva carpeta fuera de su proyecto actual. Puedes darle cualquier nombre. (Ejemplo: tiene un checkout para un proyecto llamado "Customization". Y tiene muchos proyectos, como "Project1", "Project2" .... Y desea crear una rama de "Project1". Por lo tanto, primero abra el " Personalización ", haga clic derecho y cree una nueva carpeta y asígnele un nombre," Project1Branch ").
- Haga clic derecho en "Myproject1" .... TortoiseSVN -> Sucursal/Etiqueta.
- Elija copia de trabajo.
- Abrir el navegador .... Justo a la derecha de forma paralela en "A URL".
- Seleccione la personalización ..... haga clic derecho y luego Agregar carpeta. y ve a través de la carpeta que has creado. Aquí está "Project1Branch". Ahora haga clic en el botón Aceptar para agregar.
- Realiza la compra de este nuevo banch.
- De nuevo diríjase a su proyecto qué rama desea crear. Haga clic derecho en TorotoiseSVN -> branch/tag. Luego seleccione la copia de trabajo. Y puede dar la URL como su nombre de sucursal. como {su dirección IP/svn/AAAA/Customization/Project1Branch}. Y puede establecer el nombre en la URL para que solo cree la carpeta con este nombre. Me gusta {Su dirección IP/svn/AAAA/Customization/Project1Branch/MyProject1Branch}.
- Presione el botón OK. Ahora puede ver los registros ... su copia de trabajo se almacenará en su sucursal.
- Ahora puedes echar un vistazo ... y permitirte disfrutar de tu trabajo. :)
Consejo superior para los nuevos usuarios de SVN; esto puede ayudar un poco a obtener las URL correctas rápidamente.
Ejecute svn info
para mostrar información útil sobre la rama actual desprotegida.
La URL debe (si ejecuta svn en la carpeta raíz) proporcionarle la URL desde la que debe copiar.
también para cambiar a la rama recién creada, utilice el comando svn switch
:
svn switch http://my.repo.url/myrepo/branches/newBranchName
También puede usar^en lugar de la raíz del repositorio – chim
Si eres repo está disponible a través de https, puede utilizar este comando para la rama ...
svn copy https://host.example.com/repos/project/trunk \
https://host.example.com/repos/project/branches/branch-name \
-m "Creating a branch of project"
- 1. rama SVN de una rama
- 2. git-svn: ¿cómo creo una nueva rama svn a través de git?
- 3. En P4V, ¿cómo creo una rama desde una etiqueta?
- 4. ¿Cómo revertir una rama git-svn a SVN HEAD?
- 5. SVN - fusiona una rama en otra?
- 6. crear una nueva rama svn con git-svn
- 7. ¿Cómo puedo crear una rama en svn usando SharpSVN
- 8. SVN: copia rama al tronco
- 9. ¿Cómo uso git-svn para combinar los cambios del tronco a una rama en svn?
- 10. Git: ¿Cómo comprometerse en la rama SVN después de rebase?
- 11. ¿Cómo hago que git-svn use una rama svn particular como repositorio remoto?
- 12. Git-svn: crear y empujar una nueva rama/etiqueta?
- 13. Eliminar una rama svn a través de git?
- 14. SVN: mover los cambios pendientes a una nueva rama
- 15. ¿Hay alguna diferencia entre una copia svn y una rama svn?
- 16. Error de SVN al intentar fusionar desde una rama
- 17. ¿Cómo creo una nueva rama de Git a partir de una confirmación anterior?
- 18. ¿Puedo ver el historial de la rama svn después de eliminar una rama?
- 19. SVN: Cree una rama desde la rama y fusione con la troncal
- 20. ¿Cómo 'arreglar' un conflicto de rama/árbol SVN?
- 21. ¿Cómo comparo una rama contra el tronco en subversión?
- 22. ¿Cómo sabe git-svn a qué rama comprometerse?
- 23. git-svn no puede crear una rama para seguir la ramificación de SVN
- 24. ¿Cómo saber qué rama de svn remota es un seguimiento de rama local de git?
- 25. ¿Cómo anotar una rama?
- 26. ¿Cómo evito un gran número de svn: mergeInfo al fusionar el tronco a una rama de entidad en el SVN
- 27. ¿Cómo fusionar una rama a otra rama en GIT?
- 28. Fusionar una rama en el tronco
- 29. Crear rama SVN desde cambios en el tronco
- 30. ¿Cómo contar la cantidad de líneas modificadas o agregadas en una rama SVN?
"svn copy" tiene la ventaja de que conservará el historial anterior a la bifurcación. La copia manual a otro directorio no lo hará. – WhyNotHugo
También tenga en cuenta que generalmente es una mala idea etiquetar o ramificar subdirectorios de "tronco". Esto hace que sea difícil hacer un seguimiento de qué subdirectorio fue ramificado, y la mayoría de las herramientas se confundirán por estas ramas (por ejemplo, cambiar ramas significará la estructura de directorios de los cambios de WC, lo que confundirá los IDE y las herramientas de compilación). Solo siempre ramifique "tronco". – sleske
* facilidad de copia muy, muy ligera y eficiente. * ¡Hah! No, copiar archivos reales es muy pesado y cómo terminas esperando horas para que los repositorios SVN lo revisen. Git, etc. son muy, muy ligeros y eficientes porque solo copian referencias cuando crean ramas. Copiar en escrito. – Will