J'ai un fichier qui avait été sous contrôle de révision dans SVN (j'utilise tortoiseSVN). Ce fichier est devenu obsolète, donc je ne veux plus qu'il soit dans une copie de travail de mon dépôt. Cependant, il serait probablement bon de conserver l'historique de ce fichier.
Je veux essentiellement "supprimer" ce fichier de sorte qu'il ne soit plus suivi ou "versionné". J'ai la possibilité de "supprimer" ce fichier ou de "déverrouiller" ce fichier.
Quelle est la différence entre "supprimer" et "annuler la version". Quels sont les cas d'utilisation pour chaque commande?
La suppression d'un fichier de svn, ne supprime pas son historique de révision.
Apparemment, la suppression de l'historique est possible [SO]: Supprimer le fichier avec tout l'historique du référentiel svn .
Pour faciliter les choses, considérons l'analogie suivante.
De svn's PoV, comme:
De la même façon:
Disons que nous avons un fichier svn:
La situation est la suivante:
La même chose se produirait si la suppression d'un fichier ( de sa perspective de dossier parent ).
Maintenant, revenons à votre question: sur mon TortoiseSVN (v1.9.5):
svn delete --keep-local
Après avoir effectué l'une des actions sur un fichier, ce fichier ne sera plus suivi par svn, mais par opposition à Delete (où le fichier est également supprimé à partir du Working Copy/disk), Unversion le laissera sur le disque comme l'utilisateur l'aurait copié manuellement là-bas (un svn st
"verra" le fichier comme étant hors contrôle de version: la première colonne sera un point d'interrogation (? ) comme décrit le [SVNBook]: svn status
).
[TortoiseSVN]: Supprimer, déplacer et renommer contient très peu d'informations officielles.
Personnellement, je ne vois aucune utilité à conserver le fichier local sauf pour corriger une erreur, par exemple supprimer les éléments précédemment validés qui n'appartiennent pas au référentiel (spécifiques à l'utilisateur) comme:
Citation de [SVNBook]: svn delete
:
Utilisez l'option --keep-local pour remplacer le comportement de suppression svn par défaut, qui consiste également à supprimer le fichier cible prévu pour la suppression versionnée. Cela est utile lorsque vous réalisez que vous avez accidentellement validé l'ajout d'un fichier que vous devez conserver dans votre copie de travail, mais qui n'aurait pas dû être ajouté au contrôle de version.