Comment supprimer le contrôle Subversion pour un dossier?

J’ai un dossier, c:\websites\test , et il contient des dossiers et des fichiers extraits d’un référentiel qui n’existe plus. Comment puis-je obtenir que Subversion arrête de suivre ce dossier et les sous-dossiers et fichiers?

Je sais que je pourrais simplement supprimer le dossier .svn , mais il y a beaucoup de sous-dossiers dans plusieurs couches.

En outre, si vous utilisez TortoiseSVN, exportez simplement vers l’emplacement de la copie de travail en cours et il supprimera les dossiers et fichiers .svn.

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

Réponse mise à jour pour Subversion 1.7:
Dans Subversion 1.7, la copie de travail a été largement révisée. Il n’y a qu’un seul dossier .svn, situé dans la base de la copie de travail. Si vous utilisez la version 1.7, la suppression du dossier .svn et de son contenu est une solution simple (indépendamment de l’utilisation de TortoiseSVN ou des outils de ligne de commande).

Sous Linux, cela fonctionnera:

  find . -iname ".svn" -print0 | xargs -0 rm -r 

Essayez svn export .

Vous devriez pouvoir faire quelque chose comme ceci:

 svn export /path/to/old/working/copy /path/to/plain/code 

Et puis supprimez simplement l’ancienne copie de travail.

TortoiseSVN a également une fonctionnalité d’exportation , qui se comporte de la même manière.

Si vous exécutez Windows, vous pouvez effectuer une recherche sur ce dossier pour .svn et les répertorier tous. Appuyez sur Ctrl + A pour les sélectionner tous et appuyez sur Supprimer pour supprimer tous les trucs Subversion «embêtants».

Sous Linux, la commande est la suivante:

 svn delete --keep-local file_name 

J’ai constaté que vous n’avez même pas besoin de copier vers un emplacement temporaire. Vous pouvez faire un

 svn export --force . 

et les fichiers .svn seront supprimés in situ , laissant les autres fichiers tels quels. Très pratique et moins sujet à l’encombrement.

Sans sous-shell sous Linux pour supprimer les dossiers .svn :

 find . -name .svn -exec rm -r -f {} + rm = remove -r = recursive (folders) -f = force, avoids a lot of "a your sure you want to delete file XY". 

Aucune de ces réponses n’était satisfaisante pour ma situation. Je suis sur Subversion 1.8 et j’avais une copie de travail qui ne .svn qu’un seul dossier .svn dans le tout premier dossier, root. Cependant, je voulais supprimer certaines twigs de la copie de travail.

Quoi que je fasse, à chaque fois que je lance une «mise à jour», il restaure ces fichiers et les ramène tous. Je ne voulais pas les supprimer du référentiel, juste de mon ordinateur – mais je devais conserver le rest de la copie de travail avec tact (ne pouvant donc pas simplement supprimer le dossier .svn).

Solution? svn update --set-depth exclude

Ceci est une “mise à jour” côté client qui exclut un répertoire spécifique. Vous le trouverez dans les manuels sur svnbook.com . En bref, il décrit cela comme:

À partir de Subversion 1.6, vous pouvez adopter une approche différente. D’abord, vérifiez le répertoire en entier. Ensuite, lancez svn update –set-depth exclure sur le sous-répertoire qui ne vous intéresse pas.

Pour TortoiseSVN, vous pouvez également faire la même chose en cliquant avec le bouton droit sur le dossier que vous ne souhaitez pas, cliquez sur Update to revision... , puis définissez l’ Exclude “Mettre à jour la profondeur” sur Exclude .

entrer la description de l'image ici

Ça a bien marché pour moi:

 find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf 

Utilisez la commande svn export :

 cd c:\websites\test svn export c:\websites\test_copy 

Tous les fichiers sous contrôle de version seront exportés. Vérifiez que vous n’avez rien manqué.

Supprimez simplement le dossier .svn dans le dossier requirejs, puis le contrôle sera automatiquement supprimé.

Sous Windows, vous pouvez append un lien rapide pour cela dans le menu contextuel de votre explorateur. Commencez simplement ce script de registre:

 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN] @="Delete SVN Folders" [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN\command] @="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"" 

Cela va append un élément appelé “Supprimer les dossiers SVN” à votre menu contextuel. Cela supprimera tous les dossiers .svn dans ce dossier et tous les sous-dossiers.

Source (allemand): http://www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/

Vous pouvez utiliser “svn export” pour créer une copie de ce dossier sans svn data, ou vous pouvez append ce dossier pour ignorer la liste.

Pour ceux qui utilisent NetBeans avec SVN, il existe une option “Subversion> Export”.

Il y a aussi un joli petit outil open source appelé SVN Cleaner qui ajoute trois options au menu contextuel de l’explorateur Windows:

  • Supprimer tout .svn
  • Supprimer tout mais racine .svn
  • Supprimer les fichiers Repo locaux

Sur Windows 7, il suffit d’ouvrir le dossier du projet et de rechercher “.svn” si les fichiers cachés sont activés et de supprimer tous les dossiers .svn trouvés.

LA MEILLEURE ET LA PLUS FACILE

Si vous pensez pouvoir gagner avec une simple commande de magie, vous avez échoué! SVN est vraiment compliqué et revient toujours avec un nouveau message d’erreur dans Xcode. Tôt ou tard, promis … il faut donc le faire intelligemment!

Comme vous le savez, les bonnes pratiques habituelles de Xcode consistent à supprimer un fichier dans le volet de projet à gauche. Si vous l’avez manqué et que vous l’avez supprimé dans Finder, vous êtes en difficulté. Grande difficulté! Mais vous pouvez le résoudre et le temps libre si vous le faites bien.

Tout d’abord, vous devez supprimer la référence SVN au fichier ou au dossier avant de pouvoir la supprimer.

  1. Si vous pouviez simplement remettre le fichier / dossier de la corbeille ou annuler la dernière étape lorsque vous l’avez supprimé, alors …

  2. Allez au terminal – oui, le bon vieux terminal – et allez à cet endroit. La meilleure façon de taper simplement cd puis tirez le dossier / fichier sur le terminal. Vous obtiendrez quelque chose de similaire

cd / Users / Nom d’utilisateur / Documents / Apps_Developing / …

Vous pouvez vérifier où vous êtes avec

ls

commande qui liste vos fichiers.

  1. Ensuite, vous devez supprimer la référence svn avec une commande SVN:

    svn delete –keep-local fileName_toDelete

Cela supprimera le fichier du référentiel SVN, mais vous devez le supprimer manuellement dans le Finder.

La réponse est étonnamment simple – exporter le dossier vers lui-même ! TortoiseSVN détecte ce cas particulier et vous demande si vous souhaitez rendre la copie de travail non versionnée. Si vous répondez oui, les répertoires de contrôle seront supprimés et vous aurez une arborescence de répertoires simple et sans version.

Une autre solution Linux (plus simple):

 rm -r `find /path/to/foo -name .svn` 

svn export fonctionne très bien, mais je pense que c’est:

 svn rm --keep-local  

Il le supprime de votre référentiel local.

Cette commande fonctionne pour moi:

trouver . -iname “.svn” -print0 | xargs -0 rm -r

J’utilise rsync:

 # copy folder src to srcSsortingpped excluding subfolders named '.svn'. retain dates, verbose output rsync -av --exclude .svn src srcSsortingpped 

Les utilisateurs de NetBeans IDE peuvent le faire comme ci-dessous:

  1. Ouvrez le projet SVN dans votre IDE
  2. Sélectionnez le projet

    clic droit Subversion Export

  3. Dans la boîte de dialog

    export vers le dossier / var / tmp / projectname presse export attente attend pour montrer complet

  4. Vous pouvez maintenant passer à Git 🙂

Mon idée est de supprimer le dossier .svn, puis de déplacer tous les autres fichiers dans un nouveau dossier. C’est aussi simple que ça.

Lorsque vous utilisez le système d’exploitation Windows, accédez à l’emplacement de votre dossier et vérifiez que les fichiers cachés sont ouverts, puis affichez le dossier SVN . Supprimez simplement ce dossier.

Comme point essentiel, lorsque vous utilisez le shell pour supprimer des dossiers .svn, vous avez besoin de l’argument -depth pour empêcher la commande find d’ entrer dans le répertoire qui vient d’être supprimé et d’afficher des messages d’erreur comme par exemple

“find: ./.svn: Aucun fichier ou répertoire de ce type”

En conséquence, vous pouvez utiliser la commande find comme ci-dessous:

 cd [dir_to_delete_svn_folders] find . -depth -name .svn -exec rm -fr {} \; 

Sous Windows 10, nous devons accéder à l’ Windows Explorer , puis View et cocher la case View hidden files .

Ensuite, accédez au dossier contenant le lien SVN dans l’Explorateur Windows et supprimez le dossier / fichier .svn .