Nous avons accidentellement supprimé le dossier "tags" de notre référentiel Subversion où nous n'avions l'intention de supprimer qu'une seule balise spécifique. Quelle est la manière la plus simple de récupérer le dossier "tags"?
Nous utilisons TortoiseSVN comme client et je pensais que lorsque je vais dans le navigateur de dépôt et afficher le journal, il y aura quelque chose comme "annuler les modifications de cette révision" de manière similaire à 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 là-bas ...
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 montrer à une révision que votre dossier existe toujours, puis cliquez avec le bouton droit sur ce dossier et sélectionnez "Copier vers". .. "et entrez le chemin où vous souhaitez que le dossier soit recréé (probablement le même chemin que celui qui se trouve déjà dans la zone de texte).
pour les passionnés de la ligne de commande:
recherchez d'abord le numéro de révision où votre suppression a eu lieu:
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 de dépôt svn)
copier 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"
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é.
Vous devrez effectuer une fusion inverse .
Pour plus de détails sur la façon de le faire (et à peu près tout ce que vous voudrez ou devrez faire avec SVN), le livre officiel est disponible en ligne .
Dans la continuité de 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é à l'aide du 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"
Aller à Repository Browser
de votre repository
, cliquez avec le bouton droit sur le dossier parent où se trouvait votre dossier supprimé. À présent, Show Log
du dossier parent et sélectionnez la révision précédente dans laquelle vous avez validé l'opération de suppression. Vous aurez une liste et faites un clic droit sur le dossier dans les informations de révision et sélectionnez Update to this Revision
.
Vous avez terminé