web-dev-qa-db-fra.com

Supprimer une branche SVN

J'ai créé une branche d'un projet SVN appelée "fonctionnalités" et maintenant, chaque fois que j'essaie de mettre à jour ledit projet, il est accompagné d'un dossier de fonctionnalités, qui contient une autre copie du projet de la branche. Existe-t-il un moyen de supprimer complètement la branche du référentiel afin que cela ne se produise plus?

84
GSto

Sûr: svn rm le dossier indésirable et validez.

Pour éviter cette situation à l'avenir, je suivrais le mise en page recommandée pour les projets SVN:

  • Mettez votre code dans le /someproject/trunk dossier (ou simplement /trunk _ si vous voulez mettre un seul projet dans le référentiel)
  • Branches créées en tant que /someproject/branches/somebranch
  • Placez les balises sous /someproject/tags

Maintenant, lorsque vous extrayez une copie de travail, veillez à extraire uniquement trunk ou une branche individuelle. Ne pas vérifier tout en une seule copie de travail contenant toutes les branches.1

1Sauf si vous savez ce que vous faites, dans ce cas, vous savez comment créer des copies de travail superficielles.

101
Wim Coenen

En supposant que cette branche ne soit pas un lien externe ou un lien symbolique, la suppression de la branche devrait être aussi simple que:

svn rm branches/< mybranch >

svn ci -m "message"

Si vous souhaitez faire cela dans le référentiel puis mettre à jour pour le supprimer de votre copie de travail, vous pouvez faire quelque chose comme:

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

Puis lancez:

svn update
54
grmartin

Pour ceux qui utilisent TortoiseSVN , vous pouvez le faire en utilisant le Navigateur de référentiel (le libellé "Navigateur de référentiel" dans le menu contextuel).

context menu

Recherchez le dossier de branche que vous souhaitez supprimer, faites un clic droit dessus et sélectionnez "Supprimer".

deleting the folder

Entrez votre message de validation et vous avez terminé.

committing

49
2rs2ts

Vous pouvez également supprimer directement la branche de la télécommande. Cela fait, la prochaine mise à jour le supprimera de votre copie de travail.

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

Le ^ est l'abréviation de l'URL de la télécommande, comme indiqué dans 'svn info'. Les guillemets doubles sont nécessaires sur la ligne de commande Windows, car ^ est un caractère spécial.

Cette commande fonctionnera également si vous n’avez jamais extrait la branche.

9
CodeKid

Vous pouvez supprimer le dossier de fonctionnalités comme tout autre dans votre commande, puis valider la modification.

Pour éviter cela à l'avenir, je vous suggère de suivre les conventions de dénomination de la présentation SVN.

Donnez à chaque projet une malle, des branches, un dossier de balises lors de leur création.

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

De la copie de travail:

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

3
sbi

La commande pour supprimer une branche est la suivante:

svn delete -m "<votre message>" <URL de la branche>

Si vous ne souhaitez pas extraire/extraire l'intégralité du référentiel, exécutez la commande suivante sur votre terminal:

1) obtenir le chemin absolu du répertoire qui contiendra votre copie de travail
> pwd
2) Commencez la vérification de code svn
> svn checkout <URL de la branche> <chemin absolu du point 1>

Les étapes ci-dessus vous permettront de récupérer les fichiers dans le dossier de la branche et non dans son intégralité.

2
Alvin Chettiar