Comment supprimer un projet SVN du référentiel SVN

Quelqu'un peut-il me suggérer comment supprimer le projet SVN complet du référentiel SVN (le référentiel svn est sous linux). J'ai trouvé "SVN delete", mais ne pense pas que cela fasse la même chose. Il aide seulement à supprimer des fichiers ou des sous-dossiers, mais pas l'ensemble du projet.

28
svn
demandé sur JoeDred 2011-11-09 15:31:19

9 réponses

Cette réponse peut être déroutante

Lire les commentaires attachés à ce post, et assurez-vous que c'est ce que vous êtes après

'svn delete' fonctionne contre le contenu du référentiel, pas contre le référentiel lui-même. pour effectuer la maintenance du référentiel (comme en supprimer complètement un), vous devez utiliser svnadmin. Cependant, il y a une raison pour laquelle svnadmin n'a pas de sous-commande 'delete'. Vous pouvez juste

rm -rf $REPOS_PATH

Sur le serveur svn,

Où $ REPOS_PATH est le chemin que vous avez utilisé pour créer votre référentiel avec

svnadmin create $REPOS_PATH
40
répondu user237419 2015-08-31 06:40:45

"effacer" le contenu d'un référentiel svn, c'est-à-dire effacer ce contenu du disque, peut être fait comme décrit dans cet article http://www.limilabs.com/blog/how-to-permanently-remove-svn-folder

Il nécessite l'accès au référentiel svn côté serveur, vous devez donc disposer de certains privilèges d'administrateur.

Cela fonctionne en (a) vidant le contenu du référentiel dans un fichier, (b) en excluant certains contenus et (c) en effaçant et recréant à nouveau le référentiel simple et éventuellement en (d) chargement du contenu du référentiel filtré:

svnadmin dump "path/to/svnrepo" > svnrepo.txt                    // (a)
svndumpfilter exclude "my/folder" < svnrepo.txt > filtered.txt   // (b)
rm -rf "path/to/svnrepo" && svnadmin create "path/to/svnrepo"    // (c)
svnadmin load "path/to/svnrepo" < filtered.txt                   // (d)

Le compteur de référentiel est inchangé par ces opérations. Cependant, votre référentiel est maintenant "manquant" tous les numéros de révision utilisés pour créer ce contenu que vous avez supprimé à l'étape (b).

Subversion 1.7.5 semble bien gérer ces révisions "manquantes". En utilisant "svn ls-R $ missing" par exemple, rapporte le même que " svn ls-R $(( missing - 1))".

Contrairement à cela, mon (assez vieux) VIEWVC signale "pas de contenu" quand interroger une révision "manquante".

10
répondu whaefelinger 2013-01-30 12:54:16

Dans le cas où vous souhaitez simplement supprimer un projet de la révision head, de sorte qu'il n'apparaît plus dans votre pension lorsque vous exécutez svn list file:///path/to/repo/ il suffit d'exécuter:

svn delete file:///path/to/repo/project 

Cependant, si vous devez supprimer tout enregistrement dans le repo, utilisez une autre méthode.

8
répondu user12345 2013-03-29 02:00:38

Moi aussi, j'avais l'impression que la réponse acceptée était un peu trompeuse car elle pouvait conduire un utilisateur à supprimer par inadvertance plusieurs projets. Il n'est pas exact d'affirmer que les mots Repository, Project et Directory sont ambigus dans le contexte de SVN. Ils ont des significations spécifiques, même si le système lui-même n'applique pas ces significations. La communauté et, plus important encore, les Clients SVN ont une compréhension convenue de ces termes qui leur permettent de marquer, de brancher et de fusionner.

Idéalement, cela aidera à effacer toute confusion. Comme quelqu'un qui a dû passer de Git à svn pour quelques projets, cela peut être frustrant jusqu'à ce que vous appreniez que les projets SVN branching et SVN parlent vraiment de structures de dossiers.

Terminologie SVN

Référentiel

La base de données des commits et de l'historique de vos dossiers et fichiers. Un référentiel peut contenir plusieurs "projets" ou aucun projet.

Projet

Un structure de dossier SVN spécifique qui permet aux outils SVN d'effectuer le marquage, la fusion et la ramification. SVN ne supporte pas intrinsèquement la ramification. Le branchement a été ajouté plus tard et est le résultat d'une structure de dossier spéciale comme suit:

  • /projet
    • /tags
    • /branches
    • /tronc

Remarque: rappelez-vous, un SVN 'Project' est un terme utilisé pour définir une strcuture de dossier spécifique dans un référentiel

Projets en un référentiel

Disposition Du Référentiel

Comme un référentiel est juste une base de données des fichiers et des commits de répertoire, il peut héberger plusieurs projets. Lorsque vous discutez référentiels et projets assurez-vous que le terme correct est utilisé.

La Suppression d'un Référentiel pourrait signifier la suppression de plusieurs Projets!

Répertoire SVN Local (.répertoire svn à la racine)

Lors de l'utilisation D'une URL, les validations se produisent automatiquement.

  • svn co http://svn.server.local/svn/myrepo
  • cd myrepo

  • Enlever un Projet: svn rm skunkworks + svn commit

  • Supprimer un Répertoire: svn rm regulardir/subdir + svn commit
  • supprimer un projet (sans extraire): svn rm http://svn.server.local/svn/myrepo/app1
  • supprime un répertoire (sans Vérification): svn rm http://svn.server.local/svn/myrepo/regulardir

Comme un projet SVN est vraiment une structure de répertoire spécifique, supprimer un projet revient à supprimer un répertoire.

Gestion du référentiel SVN

Plusieurs serveurs SVN sont disponibles pour héberger vos dépôts. La gestion des dépôts eux-mêmes se fait généralement via les consoles d'administration des serveurs. Par exemple, Visual SVN vous permet de créer des dépôts (bases de données), des répertoires et Projets. Mais vous ne pouvez pas supprimer des fichiers, Gérer les validations,renommer des dossiers, etc. depuis la console du serveur car ce sont des tâches spécifiques à SVN. Le serveur SVN gère généralement la création d'un référentiel. Une fois qu'un référentiel a été créé et que vous avez une nouvelle URL,le reste de votre travail est effectué via la commande svn.

6
répondu Andrew T Finnell 2016-08-24 17:56:50

Il n'y a pas de concept de "projet" dans svn. Alors, n'hésitez pas à supprimer tout ce que vous pensez appartient au projet.

5
répondu Michael Krelin - hacker 2011-11-09 11:33:50

Disposer d'une Copie de Travail

Subversion ne suit ni l'État ni l'existence de copies de travail sur le serveur, donc il n'y a pas de surcharge du serveur pour conserver les copies de travail. De même, il n'est pas nécessaire de faire savoir au serveur que vous allez supprimer une copie de travail.

Si vous êtes susceptible d'utiliser à nouveau une copie de travail, il n'y a rien de mal à la laisser sur le disque jusqu'à ce que vous soyez prêt à l'utiliser à nouveau, à quel point il suffit d'une mise à jour svn pour mettre à jour et prêt à l'emploi.

Cependant, si vous n'allez certainement pas utiliser une copie de travail à nouveau, vous pouvez supprimer en toute sécurité la chose entière en utilisant toutes les capacités de suppression de répertoire que votre système d'exploitation offre. avant de le faire, nous vous recommandons d'exécuter svn status et d'examiner tous les fichiers listés dans sa sortie qui sont préfixés par un ? assurez-vous qu'ils ne sont pas d'importance.

Depuis: http://svnbook.red-bean.com/en/1.7/svn.tour.cleanup.html

1
répondu Misho 2013-09-12 15:08:12

Il est facile de croire que la suppression de tout le dépôt Subversion nécessite d'informer Subversion que vous allez supprimer le dépôt. Mais Subversion ne se soucie que de la gestion d'un référentiel une fois qu'il est créé, pas si le référentiel existe ou non ( si cela a du sens ). Cela se passe comme ceci: les outils et les commandes Subversion ne sont pas affectés par la simple suppression de votre répertoire de référentiel avec les utilitaires du système d'exploitation habituels (comme rm-R). Un répertoire de référentiel est pas la même chose qu'un répertoire de programme installé, où la suppression d'un programme sans le désinstaller pourrait laisser des fichiers de configuration erratiques ou d'autres dépendances. Un référentiel est 100% autonome dans son répertoire, et sa suppression est inoffensive (en plus de perdre l'historique de votre projet). Il vous suffit de nettoyer l'ardoise pour créer un nouveau dépôt Subversion et importer votre prochain projet.

1
répondu 2016-07-23 18:11:30

Aller à Eclipse, Cliquez sur la fenêtre de la barre de Menu puis "ouvrir Perspective - > autre - > SVN Repository Explorer - > cliquez sur OK"

Maintenant, après avoir effectué "cliquez sur OK", vous devez aller au camion (ou à l'endroit où votre projet est enregistré dans SVN), puis sélectionnez Projet (que vous souhaitez supprimer), puis faites un clic droit - > Supprimer.

Cela supprimera le projet de subversion.

-1
répondu Anudeep 2016-06-07 20:06:30

La phrase correcte est: svnadmin deltify $ PATH . ne pas forghet pour supprimer le projet ou le référentiel du fichier svn-acl (si vous l'utilisez). si vous supprimez simplement le dossier du référentiel, vous risquez de corrompre le répertoire svn en fonction de la configuration de votre svn dans votre environnement.

-2
répondu Jorge Marchesini 2016-12-16 19:43:14