web-dev-qa-db-fra.com

Comment renommer une branche SVN et mettre à jour les références dans un sandbox existant?

J'avais besoin de renommer une branche SVN, alors j'ai fait:

$ svn move https: // serveur/repos/myrepo/branches/oldbranch\
 https: // serveur/repos/myrepo/branches/newbranch

Jusqu'à présent, tout va bien - la branche a été renommée.

Le problème est que nous avons des bacs à sable existants extraits de cette branche et lorsque j'essaie de mettre à jour, j'obtiens cette erreur:

$ svn update 
 svn: Le chemin cible '/ branches/oldbranch' n'existe pas

Une erreur assez explicite. Après une recherche rapide, je pensais avoir trouvé la solution: Relocalisation de la copie de travail SVN après le changement de nom de la branche

Le problème est que lorsque j'essaie d'émettre cette commande, j'obtiens une autre erreur:

$ svn switch --relocate https: // server/repos/myrepo/branches/oldbranch\
 https: // server/repos/myrepo/branches/newbranch 
 svn: Relocate ne peut que modifier le partie de référentiel d'une URL

Pour autant que je sache, j'utilise le --relocate commande de la même manière que Sander Rijken. Des idées pourquoi j'obtiens cette erreur?

44
Lee Netherton

Fais juste

svn switch https://server/repos/myrepo/branches/newbranch

depuis votre copie de travail.

52
khmarbaise

Pour changer le chemin relatif, vous devez utiliser pursvn switch (et de toute façon switch --relocate est obsolète), comme écrit en svn help switch pour le 1 er formulaire

switch URL[@PEGREV] [PATH] Mettez à jour la copie de travail pour refléter une nouvelle URL dans le référentiel.

 This behavior is similar to 'svn update', and is the way to
 move a working copy to a branch or tag within the same repository.

C'est-à-dire à la racine de WC pour oldbranch, qui est maintenant newbranch, vous devez utiliser

svn switch ^/branches/newbranch

3
Lazy Badger

Si vous aviez simplement voulu renommer une branche SVN dans Eclipse, le plus simple aurait été d'aller dans le SVN Repository Exploring Perspective, puis de faire un clic droit sur votre branche -> Refactor-> Rename

3
Leopold Gault