Besoin de restaurer une twig supprimée dans Subversion

J’ai deux copies de travail d’un repository Subversion, une du tronc et une d’une twig que j’ai créée.

J’ai accidentellement supprimé la twig dans un navigateur de référentiel. Comment restaurer la twig? Existe-t-il un moyen d’annuler la validation la plus récente pour l’ensemble du référentiel?

Utilisation:

svn cp [path to deleted branch]@[revision before delete] [new path] 

Par exemple:

 svn cp svn://myrepo.com/svn/twigs/2.0.5@1993 \ svn://myrepo.com/svn/twigs/2.0.5_restored 

Où 1993 est la révision avant la suppression …

Voici une bonne documentation …

Il doit y avoir un moyen d’échapper au symbole @ dans le nom d’utilisateur …

Voici une solution si vous utilisez TortoiseSVN:

  1. Dans le navigateur de référentiel, accédez au dossier parent du dossier que vous avez supprimé (par exemple “twigs”).
  2. Faites un clic droit sur le dossier et faites un “Afficher le journal”.
  3. Recherchez la révision où vous avez supprimé le dossier de twig spécifique.
  4. Sélectionnez la révision immédiatement avant cette révision.
  5. Faites un clic droit et choisissez “Parcourir le référentiel”. Vous regardez maintenant l’état du référentiel à l’instant juste avant de supprimer la twig.
  6. Recherchez le dossier de twig que vous avez supprimé, sélectionnez, cliquez avec le bouton droit de la souris et choisissez “Copier vers …”
  7. Vous pouvez maintenant copier le dossier supprimé vers un nouveau nom ou même le même nom.

En supposant que votre dernière révision était 108:

 svn merge --revision 108:107 svn diff svn commit -m "Reverted revision 108" 

Vous pouvez également append votre URL source à la fusion:

 svn merge --revision 108:107 http://svn/repo/ 

Ailleurs sur Stack Overflow: Annulation d’un commit dans TortoiseSVN

J’ai rencontré ce problème, mais la commande ci-dessus n’a pas fonctionné pour moi. Ce qui était fait était beaucoup plus facile. J’ai vérifié la twig lors d’une révision avant de la retirer.

La révision qui a été supprimée était 9331. Je l’ai vérifiée à 9330:

 svn co https://svn.acme.com/svn/giantFlySwatterTargetingSystem/twigs/bug1234@9330 restored 

C’était la solution facile que je voulais.

Cela a fonctionné pour moi,

svn cp -username nom-utilisateur-https: // path_to_your_repo / twigs / deleted_branch_name @ last_revision_before_deletion https: // path_to_your_repo / twigs / new_name_for_branch

Sinon, s’il s’agissait d’un seul commit qui a supprimé la twig:

Annuler le commit puis valider

 svn merge -c -REV . svn commit -m "Reverting deletion of branch XYZ" 

J’ai rencontré le même problème et l’ai résolu de cette façon dans SmartSVN (Enterprise 6.0.2):

  • Ouvrir une vue sur le tronc / HEAD
  • Appeler le menu Repository / Open dans le Repository Browser (la twig supprimée est absente du dossier twigs)
  • Dans le navigateur de référentiel, appelez le menu Repository / Show Revision …
  • Sélectionnez la révision juste avant la suppression (la twig supprimée réapparaît dans le dossier twigs)
  • Cliquez avec le bouton droit sur la twig supprimée, sélectionnez Copier dans le menu et entrez le même chemin pour la destination.