Eliminar una rama SVN

91

Creé una rama de un proyecto SVN llamada 'características', y ahora cada vez que intento actualizar dicho proyecto, trae consigo una carpeta de características, que contiene otra copia del proyecto de la rama. ¿Hay alguna forma de eliminar la rama del repositorio por completo para que esto no suceda más?

GSto
fuente
Posible duplicado de Delete a branch
Jim G.

Respuestas:

110

Claro: svn rmla carpeta no deseada y confíe.

Para evitar esta situación en el futuro, seguiría el diseño recomendado para proyectos SVN:

  • Pon tu código en la /someproject/trunkcarpeta (o simplemente /trunksi quieres poner solo un proyecto en el repositorio)
  • Creadas ramas como /someproject/branches/somebranch
  • Pon etiquetas debajo /someproject/tags

Ahora, cuando revise una copia de trabajo, asegúrese de revisar solo trunko alguna rama individual. No revise todo en una copia de trabajo enorme que contenga todas las ramas. 1

1 A menos que sepa lo que está haciendo, en cuyo caso sabe cómo crear copias de trabajo superficiales.

Wim Coenen
fuente
58

Suponiendo que esta rama no es un enlace externo o simbólico, eliminar la rama debería ser tan simple como:

svn rm branches/< mybranch >

svn ci -m "message"

Si desea hacer esto en el repositorio, actualice para eliminarlo de su copia de trabajo, puede hacer algo como:

svn rm http://< myurl >/< myrepo >/branches/< mybranch >

Entonces corre:

svn update
grmartin
fuente
26
del libro : "Sin embargo, eliminar una URL es inmediato, por lo que debe proporcionar un mensaje de registro [con -m]", por lo que svn rm -m message http://...no es updateobligatorio
rymo
57

Para aquellos que usan TortoiseSVN , pueden lograr esto usando el Navegador de repositorio (está etiquetado como "Navegador de repositorios" en el menú contextual).

Menú de contexto

Busque la carpeta de la rama que desea eliminar, haga clic con el botón derecho y seleccione "Eliminar".

eliminar la carpeta

Ingrese su mensaje de confirmación y listo.

cometiendo

2rs2ts
fuente
Realice una actualización de SVN para eliminar carpetas de su disco (si no se eliminan antes de eliminar la rama)
ArieKanarie
12

También puede eliminar la rama en el control remoto directamente. Una vez hecho esto, la próxima actualización lo eliminará de su copia de trabajo.

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"

El ^es la abreviatura de la URL del mando a distancia, como se ve en 'svn info'. Las comillas dobles son necesarias en la línea de comandos de Windows, porque ^es un carácter especial.

Este comando también funcionará si nunca ha verificado la rama.

CodeKid
fuente
¡Usé esto desde una Mac y funcionó bien! Cuando probé la respuesta principal, obtuve la respuesta "'/ local / path / to / repo / branch / branch-name' no es una copia de trabajo", así que presumiblemente nunca pude ver la rama que hice
Mad Bernard
3

Puede eliminar la carpeta de características como cualquier otra en su pago y luego confirmar el cambio.

Para evitar esto en el futuro, le sugiero que siga las convenciones de nomenclatura para el diseño SVN.

O bien, asigne a cada proyecto una carpeta de troncales, ramas y etiquetas cuando se creen.

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags
Chris Nava
fuente
3

De la copia de trabajo:

svn rm branches/features
svn commit -m "delete stale feature branch"

sbi
fuente
3

El comando para eliminar una rama es el siguiente:

svn delete -m "<su mensaje>" <url de rama>

Si no desea obtener / pagar todo el repositorio, ejecute el siguiente comando en su terminal:

1) obtenga la ruta absoluta del directorio que contendrá su copia de trabajo
> pwd
2) Inicie la verificación del código
svn> svn checkout <url de la sucursal> <ruta absoluta desde el punto 1>

Los pasos anteriores le llevarán los archivos dentro de la carpeta de la rama y no a la carpeta completa.

Alvin Chettiar
fuente