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?


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.


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

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


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.


¡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

3

De la copia de trabajo:

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


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.