Tortoise SVN Repo-Browser
-
22-07-2019 - |
Question
Je me demandais si je fais un clic droit sur un fichier dans le navigateur de référentiels SVN, est-il supprimé définitivement? peut-il être récupéré?
La solution
Cette question / réponse de la FAQ SVN pourrait vous intéresser:
Comment puis-je supprimer complètement un fichier de l'historique du référentiel?
Il existe des cas particuliers dans lesquels vous pourrait vouloir détruire toutes les preuves de un fichier ou un commit. (Peut-être que quelqu'un commis accidentellement un secret document.) Ce n’est pas si facile, car Subversion est délibérément conçu pour ne perdez jamais d'informations. Les révisions sont arbres immuables qui s'appuient sur un un autre. Supprimer une révision de l'histoire provoquerait un effet domino, créer le chaos dans tous les suivants révisions et éventuellement invalidantes toutes les copies de travail.
Le projet prévoit toutefois de implémentera un jour une commande
svnadmin obliterate
qui accomplir la tâche de manière permanente supprimer des informations. (Voir le numéro 516.)En attendant, votre seul recours est
svnadmin dump
de votre référentiel, puis diriger le fichier de vidage à traverssvndumpfilter
(à l'exclusion du mauvais chemin) dans une commandesvnadmin load
.
Si c'est aussi difficile, il y a peu de chances que cela soit fait facilement depuis Tortoise SVN ...
(Et ce n'est pas l'objectif du contrôle de code source ...)
Autres conseils
Vous constaterez que vous ne pouvez supprimer du navigateur Repo que lorsque vous visualisez la révision HEAD. Ceci est identique à la suppression d'un fichier de votre copie de travail et à l'enregistrement de la suppression. Dans les deux cas, vous pourrez restaurer à partir de la révision précédente.
La suppression d'un fichier via le menu contextuel du navigateur de référentiel crée une nouvelle révision globale dans laquelle seul ce fichier a été supprimé. Il apparaît donc dans le journal. Vous pouvez toujours revenir à cette révision pour récupérer le fichier. peut simplement le tirer directement du référentiel dans votre copie de travail.
Non ... La suppression d'un fichier (même à l'aide du navigateur de référentiel) n'affecte que les copies de travail. Ce serait un système de contrôle de révision assez moche si vous ne pouviez pas récupérer un fichier du passé. Il est en fait assez difficile de modifier des fichiers dans une révision validée, même si vous avez un accès root au serveur.
Un clic droit ne fait-il pas apparaître une sorte de menu? Et avec SVN, vous pouvez toujours revenir quand même.
J'ai supprimé un répertoire de niveau supérieur de Repo Browser par accident et le seul moyen de le récupérer était le suivant:
- Exporter le dossier de niveau supérieur à partir d'un historique de version précédent
- Créez un nouveau dossier dans le référentiel pour remplacer celui supprimé.
- Ajouter les fichiers exportés dans le nouveau répertoire (même nom que le précédent)
- Mettez à jour la copie de travail, elle supprimera puis rajoutera les mêmes fichiers.
C’est ennuyeux mais au moins le travail et le dépôt seront de nouveau synchronisés. Le " Annuler les modifications de cette révision " n’a pas fonctionné pour annuler les suppressions de dépôt, il ne fait que revenir dans le répertoire de travail et non pas le "Annuler" la suppression dans le référentiel.