¿Cómo creo una rama en SVN?
¿Cómo creo una rama en SVN?
La ramificación en Subversion se ve facilitada por una instalación de copiado muy, muy ligera y eficiente.
La ramificación y el etiquetado son efectivamente lo mismo. Simplemente copie una carpeta completa en el repositorio a otro lugar del repositorio usando el svn copy
comando.
Básicamente, esto significa que es por convención lo que significa copiar una carpeta, ya sea una copia de seguridad, etiqueta, rama o lo que sea. Dependiendo de cómo quiera pensar sobre las cosas (normalmente dependiendo de la herramienta SCM que haya utilizado en el pasado), necesita configurar una estructura de carpetas dentro de su repositorio para apoyar su estilo.
Los estilos comunes son tener un montón de carpetas en la parte superior de su repositorio llamada tags
, branches
, trunk
, etc - que le permite copiar sus enteros trunk
(o subconjuntos) en los 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) tengan claras las convenciones que va a utilizar. También es una buena idea tener una buena convención de nomenclatura, algo que le diga por qué se hizo la rama / etiqueta y si aún es apropiada, considere formas de archivar ramas que son obsoletas.
svn cp
usa copias baratas, no copia los archivos reales durante la ramificación. Ver svnbook.red-bean.com/en/1.1/ch04s02.htmlCree una nueva rama utilizando el
svn copy
comando de la siguiente manera:fuente
svn switch svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH .
(si desea cambiar el pago actual a una nueva sucursal) osvn checkout svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH
(si desea tener una nueva sucursal en el directorio separado) para comenzar a trabajar en la sucursal recién creada.--parents
opción consvn copy
!-m
opción, dice comosvn: E155010: Path '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/svn/dir1/dir2/trunk/dir3/dir4/dir5' does not exist
. Con-m
eso dicesvn: E205009: Local, non-commit operations do not take a log message or revision properties
. (Reemplacé las direcciones, pero existen, excepto, ofc, el nuevo directorio de sucursal y toda la ruta + url que SVN por alguna razón se fusionó en el error) .Si su repositorio está disponible a través de https, puede usar este comando para bifurcar ...
fuente
Si tiene algunos cambios locales en el tronco, úselo
Rsync
para sincronizar los cambios.fuente
rsync
de esta manera.svn cp
también copiará cualquier cambio local.Suponga que desea crear una rama a partir de un nombre de troncal (como "PRUEBA") y luego use:
fuente
Normalmente lo copiaría a svn + ssh: //host.example.com/repos/project/branches/mybranch para que pueda mantener varias ramas en el repositorio, pero su sintaxis es válida.
Aquí hay algunos consejos sobre cómo configurar el diseño de su repositorio .
fuente
Sugerencia para nuevos usuarios de SVN; Esto puede ayudar un poco a obtener rápidamente las URL correctas.
Ejecutar
svn info
para mostrar información útil sobre la rama actual desprotegida.La URL debería (si ejecuta svn en la carpeta raíz) proporcionarle la URL desde la que necesita copiar.
También para cambiar a la rama recién creada, use el
svn switch
comando:fuente
Si incluso planea fusionar su sucursal, le recomiendo que mire esto:
Svnmerge.py
Escuché que Subversion 1.5 crea más seguimiento de fusión, no tengo experiencia con eso. ¡Mi proyecto está en 1.4.xy svnmerge.py es un salvavidas!
fuente
fuente
A continuación se detallan los pasos para crear una rama desde el tronco utilizando TortoiseSVN en la máquina Windows. Obviamente, esto necesita que se instale el cliente TortoiseSVN.
fuente