Comment "restaurer" un dossier Supprimé dans Subversion / TortoiseSVN?

Nous avons accidentellement supprimé le dossier 'tags' de notre dépôt Subversion où nous avions seulement l'intention de supprimer une balise spécifique. Quel est le moyen le plus simple de récupérer le dossier 'tags'?

Nous utilisons TortoiseSVN comme client et je pensais que lorsque je vais dans le navigateur repo et afficher le journal, il y aura quelque chose comme "annuler les modifications de cette révision" de la même manière que ce que vous pouvez voir dans une boîte de dialogue similaire sur votre copie de travail. Mais il n'y a pas une telle commande...

89
demandé sur Borek Bernard 2010-02-15 13:52:00

6 réponses

Copiez simplement le dossier Supprimé d'une révision antérieure.

Dans le navigateur du référentiel, cliquez sur le bouton intitulé HEAD (dans le coin supérieur droit) pour afficher à une révision votre dossier existe toujours, puis cliquez avec le bouton droit sur ce dossier et sélectionnez "Copier vers..."et entrez le chemin là, vous voulez que le dossier soit recréé (probablement le même chemin qui est déjà dans la zone de texte).

107
répondu Mikael Sundberg 2013-06-26 13:01:58

Pour les amateurs de ligne de commande:

  • Trouvez D'abord le numéro de révision où votre suppression s'est produite:

    svn log -v http://svnserver/path/to/folderContainingDeletedFolder
    

Disons que vous trouvez que le répertoire a été supprimé dans la révision 999 (btw: vous trouverez peut-être plus facile de trouver le numéro de révision avec le navigateur SVN repo)

  • Copiez le dossier de la révision moins 1

    svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
    

Voilà, vous avez terminé!

Dans votre cas, cela pourrait être:

    svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"
72
répondu raudi 2011-05-12 08:15:55

La Plupart de ces réponses fonctionneront dans une certaine mesure, mais la bonne réponse est celle de Daniel. faites une fusion inverse. De cette façon, vous gardez l'historique des versions.

svn merge -r R1:R2

Où R1 est la révision à laquelle vous vous trouvez, et R2 est la révision qui contient le fichier/dossier Supprimé.

11
répondu Miles 2012-09-28 18:18:37

Vous aurez besoin de faire un inverse de fusion.

Pour plus de détails sur la façon de le faire (et à peu près tout ce que vous voudriez ou devez faire avec SVN), le livre officiel est disponible en ligne .

7
répondu Daniel 2012-11-27 00:00:33

Goto Repository Browser votre repository, cliquez-droit sur le dossier parent où votre dossier supprimé existé. Maintenant, Show Log du dossier parent, et sélectionnez la révision précédente où vous avez validé l'opération de suppression. Vous aurez une liste et faites un clic droit sur le dossier à partir des informations de révision et sélectionnez Update to this Revision.

Vous avez terminé

2
répondu Abdul Munim 2010-02-15 10:57:22

Suite à la réponse de raudi qui a fonctionné pour moi après cette révision.

Certains clients svn peuvent avoir besoin du numéro de révision spécifié en utilisant le paramètre de révision-r au lieu d'utiliser @ après le dossier comme suit:

svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"
2
répondu Paul 2012-11-15 11:19:14