On suppose ici que le répertoire du projet SVN est /data/svn/project, et nous souhaitons exclure le fichier trunk/test.exe et le répertoire trunk/notallowed/. Les étapes sont les suivantes et la commande svn exécutée (. dans le répertoire bin du répertoire d'installation de svn) est le suivant :
# Exportez d'abord toute la bibliothèque svn
svnadmin dump /data/svn/project > project_original.dump
# Ensuite, excluez les fichiers inutiles dans le fichier project_original.dump et générez un nouveau fichier dump
tapez project_original.dump | svndumpfilter exclure trunk/test.exe trunk/notallowed > project_new.dump
# Créez ensuite un nouveau projet SVN et importez le fichier de vidage ci-dessus dans un nouveau projet
svnadmin créer /data/svn/project_new
svnadmin charge /data/svn/project_new < project_new.dump
Enfin, supprimez le répertoire du projet d'origine et remplacez project_new par project. Il convient de noter que la commande dump exportera toutes les modifications et tous les enregistrements d'historique du projet svn, donc le fichier de dump exporté sera volumineux et le temps d'importation sera relativement long.
Supprimez complètement certains dossiers ou fichiers du référentiel SVN côté serveur
Si vous souhaitez supprimer complètement un dossier ou un fichier dans le référentiel SVN, vous pouvez utiliser cette méthode (par exemple) :
Exemple : Supposons que le chemin de la bibliothèque SVN soit E:/svn/project et que la structure des répertoires de la bibliothèque soit
Assurance qualité/tronc
Logiciel/Balises/test.exe
Supprimez le fichier test.exe dans le répertoire Software/Tags/
Les étapes sont les suivantes :
Videz la bibliothèque SVN et utilisez svndumpfilter pour filtrer les fichiers à supprimer. Créez une nouvelle bibliothèque SVN et chargez les fichiers traités dans la nouvelle bibliothèque SVN.
> svnadmin dump E:/svn/project > aaa.dump
>tapez aaa.dump | svndumpfilter exclure /Software/Tags/test.exe > bbb.dump
>svnadmin crée E:/svn/project_new
>svnadmin charge E:/svn/project_new < bbb.dump
Renommez ensuite le nouveau project_new en projet. Le projet précédent peut être déplacé ou donné un autre nom (étant donné que le répertoire SVN utilisé dans TRAC est un projet, le répertoire SVN utilisé par les utilisateurs est également un projet).
Cette méthode peut avoir pour effet de supprimer complètement un certain dossier ou fichier dans le référentiel SVN lorsqu'il n'y a pas beaucoup de versions dans le référentiel SVN. Cependant, s'il y a trop de versions dans le référentiel SVN, l'espace de stockage sera insuffisant lors du dumping. la version. La version ne peut pas être vidée. Il devient inutilisable. À ce stade, un autre disque dur doit être installé pour satisfaire son espace de stockage.
Comment récupérer des fichiers ou des dossiers supprimés avec SVN
Utiliser TortoiseSVN :
1. Dans la copie de travail locale, utilisez TortoiseSVN->Afficher le journal pour afficher l'historique du référentiel. Vous pouvez utiliser la recherche.
2. Recherchez la version dans laquelle le fichier ou le dossier a été supprimé et cliquez avec le bouton droit sur Annuler les modifications de cette révision dans le message du journal.
3. Le fichier ou le dossier est restauré sur la copie de travail locale. S'il a été supprimé par erreur, déposez-le simplement dans le référentiel.
Utilisation du plug-in Subclipse pour Eclipse :
1. Utilisez Team->Show SVN Repository History pour afficher l'historique du référentiel.
2. Recherchez la version dans laquelle le fichier ou le dossier a été supprimé, cliquez avec le bouton droit sur Revenir à la version XX.
3. Le fichier ou le dossier est restauré sur la copie de travail locale. S'il a été supprimé par erreur, déposez-le simplement dans le référentiel.