¿Cómo puedo crear una rama en SVN?


¿Cómo puedo crear una rama en SVN?

Author: bahrep, 2008-08-05

9 answers

La ramificación en Subversion es facilitada por una instalación de copia 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 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, una etiqueta, una rama o lo que sea. Dependiendo de cómo quieras pensar las cosas (normalmente dependiendo de la herramienta SCM que tengas utilizado en el pasado) necesita configurar una estructura de carpetas dentro de su repositorio para soportar su estilo.

Los 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 todo su trunk (o subconjuntos) en las carpetas tags y/o branches. Si tiene más de un proyecto, es posible que desee replicar este tipo de estructura bajo cada proyecto:

Puede llevar un tiempo acostumbrarse al concepto, pero funciona - solo asegúrese de que usted (y su equipo) son claros en 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 creó la rama/etiqueta y si todavía es apropiada-considerar formas de archivar ramas que son obsoletas.

 328
Author: Ronnie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-02 18:44:15

Crea una nueva rama usando el comando svn copy de la siguiente manera:

$ 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"
 577
Author: sparkes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-13 22:46:58

Si su repositorio está disponible a través de https, puede usar este comando para ramificar ...

svn copy https://host.example.com/repos/project/trunk \
       https://host.example.com/repos/project/branches/branch-name \
  -m "Creating a branch of project"
 27
Author: Dave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-10 20:36:21
svn cp /trunk/ /branch/NEW_Branch

Si tiene algunos cambios locales en el tronco, use Rsync para sincronizar los cambios

rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
 24
Author: Parag Bafna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-03 09:14:12

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.

 14
Author: pix0r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-05 12:40:31

Supongamos que desea crear una rama a partir de un nombre troncal (como " TEST") luego use:

svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
 12
Author: Chamly Idunil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-01 21:37:29

Si incluso planea fusionar su rama, le sugiero que mire esto:

Svnmerge.py

He oído que Subversion 1.5 construye más del seguimiento de fusión, no tengo experiencia con eso. Mi proyecto está en 1.4.x y svnmerge.py es un salvavidas!

 11
Author: basszero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-28 04:33:56

El mejor consejo 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 acerca de la rama checked-out actual.

La URL debería (si ejecuta svn en la carpeta raíz) darle la URL desde la que necesita copiar.

También para cambiar a la rama recién creada, use el comando svn switch:

svn switch http://my.repo.url/myrepo/branches/newBranchName
 10
Author: chim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-01 21:43:38
  • Cree una nueva carpeta fuera de su proyecto actual. Puedes darle cualquier nombre. (Ejemplo: Tienes un checkout para un proyecto llamado "Customization". Y tiene muchos proyectos, como "Project1", "Project2"....Y quieres crear una rama de "Project1". Así que primero abra la "Personalización", haga clic derecho y crear una nueva carpeta y darle un nombre,"Project1Branch").
  • Haga clic derecho en "Myproject1"....TortoiseSVN - > Branch / Tag.
  • Elija copia de trabajo.
  • Abierto navegador....Justo a la derecha del paralelo en "A URL".
  • Seleccione personalización.....haga clic derecho y luego Agregar carpeta. e ir a través de la carpeta que ha creado. Aquí está "Project1Branch". Ahora haga clic en el botón OK para agregar.
  • Echa un vistazo a este nuevo banch.
  • De nuevo ve a tu proyecto qué rama quieres crear. Haga clic derecho en TorotoiseSVN - > branch / tag. A continuación, seleccione copia de trabajo. Y puedes dar la URL como el nombre de tu rama. como {su IP dirección / svn/AAAA / Personalización / Project1Branch}. Y puede establecer el nombre en la URL para que cree la carpeta solo con este nombre. Como {Tu dirección IP/svn/AAAA/Customization/Project1Branch / MyProject1Branch}.
  • Pulse el botón OK. Ahora puedes ver los registros ...su copia de trabajo se almacenará en su sucursal.
  • Ahora puedes sacar un cheque...y que disfrutes de tu trabajo. :)
 5
Author: Sonu Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-01 21:41:15