Comment supprimer le contrôle Subversion pour un dossier?

j'ai un dossier c:websitestest , et il contient des dossiers et des fichiers qui ont été extraits à partir d'un référentiel qui n'existe plus. Comment puis-je faire pour que Subversion cesse de suivre ce dossier et l'un des 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.

245
svn
demandé sur Peter Mortensen 2008-10-01 00:21:32

28 réponses

aussi, si vous utilisez TortoiseSVN, il suffit d'exporter vers l'emplacement actuel de la copie de travail et il supprimera le .dossiers et fichiers svn.

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

mise à jour de la réponse pour Subversion 1.7:

Dans Subversion 1.7 la copie de travail a été révisé largement. Il n'y en a qu'une .svn dossier, situé dans la base de la copie de travail. Si vous utilisez 1.7, alors il suffit de supprimer le .svn folder et son contenu est une solution facile (indépendamment de L'utilisation des outils TortoiseSVN ou en ligne de commande).

250
répondu crashmstr 2012-04-05 12:14:34

sous Linux, cela fonctionnera:

  find . -iname ".svn" -print0 | xargs -0 rm -r
150
répondu Max Cantor 2011-11-14 13:44:41

Try svn export .

Vous devriez être en mesure de faire quelque chose comme ceci:

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

et supprimez l'ancienne copie de travail.

TortoiseSVN a également un exportation caractéristique , qui se comporte de la même manière.

118
répondu pkaeding 2008-09-30 20:42:06

si vous utilisez Windows, vous pouvez effectuer une recherche dans ce dossier pour .svn et cela va tous les lister. En appuyant sur Ctrl + A vous les sélectionnerez tous et en appuyant sur delete vous supprimerez tous les éléments de Subversion "embêtants".

31
répondu graham.reeds 2013-05-13 08:58:59

sur Linux la commande est:

svn delete --keep-local file_name
21
répondu bunteKnete 2012-05-09 11:59:11

j'ai trouvé que vous n'avez même pas besoin de copier à un endroit temporaire. Vous pouvez faire un

svn export --force .

et le .les fichiers svn seront supprimés in situ , laissant les autres fichiers tels quels. Très pratique et moins enclin au désordre.

20
répondu I. J. Kennedy 2011-02-02 22:33:42

sans subshells sous Linux pour supprimer .svn dossiers:

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".
9
répondu user1439712 2017-07-19 16:00:35

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 n'avait qu'un seul dossier .svn au tout premier dossier, root. Cependant, je voulais supprimer certaines branches de la copie de travail.

peu importe ce que je faisais, chaque fois que je lançais une 'mise à jour' il restaurait ces fichiers et les ramenait tous. Je ne voulais pas les retirer du dépôt, juste de mon ordinateur -- mais j'avais besoin de garder le reste du la copie de travail en tact (ne pouvait donc pas simplement supprimer le .svn dossier).

Solution

? svn update --set-depth exclude <dir>

il s'agit d'une" mise à jour " côté client qui exclut un répertoire spécifique. Il peut être trouvé dans les manuels à svnbook.com . En bref, il décrit cela comme:

en commençant par Subversion 1.6, vous pouvez adopter une approche différente. Tout d'abord, consultez le répertoire complet. Puis lancez svn update --profondeur exclure sur un sous-répertoire que vous ne se soucient pas.

pour TortoiseSVN, vous pouvez aussi faire la même chose en cliquant avec le bouton droit de la souris sur le dossier que vous ne voulez pas, cliquez sur Update to revision... , puis réglez la 'Update Depth' sur Exclude , comme vu dans cette capture d'écran:

enter image description here

8
répondu brazilianldsjaguar 2015-02-03 19:52:47

cela a bien fonctionné pour moi:

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf
8
répondu Manikandan S 2016-08-11 19:18:21

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 pour vous assurer que vous n'avez rien manqué.

7
répondu 1800 INFORMATION 2012-02-24 13:18:42

il suffit de supprimer le .svn folder à l'intérieur du dossier requis, puis la commande sera automatiquement retirée.

3
répondu Ramudu 2011-02-15 11:10:05

sur Windows, vous pouvez ajouter un quicklink pour cela à votre menu de clic droit d'Explorateur. Il suffit de démarrer 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\" \""

ceci ajoutera un article appelé" Delete SVN Folders " à votre menu de clic droit. Ceci supprimera tout .svn dossiers dans ce dossier et tous les sous-dossiers.

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

3
répondu Tobias 2012-02-24 13:20:36

vous pouvez utiliser "svn export" pour créer une copie de ce dossier sans données svn, ou vous pouvez ajouter ce dossier pour ignorer la liste

2
répondu andy.gurin 2008-09-30 20:23:56

pour ceux qui utilisent NetBeans avec SVN, il y a une option 'Subversion > Export'.

2
répondu Ladik 2010-11-04 13:37:33

il y a aussi un joli petit outil open source appelé SVN Cleaner qui ajoute trois options au Menu contextuel de Windows Explorer:

  • Enlever Tout .svn
  • Enlever Tout Sauf La Racine .svn
  • Supprimer Local Des Pensions De Fichiers
2
répondu Martin Buberl 2011-02-02 22:57:57

sous Windows 7 Il suffit d'ouvrir le dossier projet et de faire une recherche pour".svn" si les fichiers cachés sont activés et supprimer tous trouvé .svn dossiers.

2
répondu Unknown_Guy 2011-12-16 21:15:09

THE BEST AND LEAST WAY

si vous pensez que vous pourriez gagner avec une simple commande magique vous êtes échoué! SVN est vraiment délicat et revient toujours d'une façon ou d'une autre avec un nouveau message d'erreur dans Xcode. Tôt ou tard, c'est promis... de sorte que vous avez à faire, il est intelligent!

comme vous le savez, la pratique habituelle et exemplaire sous Xcode supprime un fichier sur le volet du projet à gauche. Si vous l'avez raté et effacé d'une façon ou d'une autre dans Finder vous êtes en difficulté. Gros ennuis! Mais tu pourrais le résoudre et te ménager du temps si tu le fais bien.

tout d'abord, vous devez supprimer la référence SVN au fichier ou au dossier avant de pouvoir la supprimer réellement

  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. Aller à la Borne - oui, le bon vieux terminal - et aller à cet endroit. Tapez simplement cd puis tirez le dossier / fichier sur le Terminal. Vous obtiendrez quelque chose de similaire

cd /Utilisateurs/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

ceci supprimera le fichier du dépôt SVN, mais vous devez le supprimer manuellement dans Finder.

2
répondu BootMaker 2017-07-19 17:20:12

la réponse est étonnamment simple - exportez le dossier à lui-même ! TortoiseSVN détecte ce cas particulier et demande si vous voulez faire la copie de travail non suivie en versions. Si vous répondez oui, les répertoires de contrôle seront supprimés et vous aurez une arborescence de répertoires simple et non suivie en versions.

1
répondu Srikanth 2013-05-28 09:45:56

une autre solution Linux (plus simple):

rm -r `find /path/to/foo -name .svn`
1
répondu Dougvj 2017-07-19 16:00:48

svn export fonctionne bien, mais je pense que c'est:

svn rm --keep-local <folder/file>

il le supprime de votre dépôt local.

1
répondu Javier Salinas 2017-07-19 16:02:55

cette commande fonctionne pour moi:

trouver . - iname".svn " - print0 / xargs -0 rm-r

0
répondu speby 2011-12-05 01:13:25

j'utilise rsync:

# copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
rsync -av --exclude .svn src srcStripped
0
répondu yeeking 2013-04-27 21:07:51

NetBeans IDE les utilisateurs peuvent le faire comme ci-dessous:

  1. Ouvrir le SVN du projet dans l'IDE
  2. sélectionner le projet

    clic droit Subversion Exportation 151910920"

  3. dans la boîte de dialogue

    exportation vers le dossier /var/tmp/projectname appuyez sur exporter attendre affichera complet va demander voulez-vous

  4. vous pouvez maintenant passer à Git:)

0
répondu YumYumYum 2017-07-19 15:59:20

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

0
répondu Alvin567 2017-07-19 15:59:57

lorsque vous utilisez le système D'exploitation Windows, allez dans l'emplacement de votre dossier et vérifiez que les fichiers cachés y sont ouverts, puis vous pouvez voir le dossier SVN . Juste de supprimer ce dossier.

0
répondu dush88c 2017-07-19 16:02:14

comme point vital, lorsque vous utilisez le shell à supprimer .svn folders, 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

"rechercher: ./.svn: Aucun fichier ou répertoire de"

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 {} \;
0
répondu fatihk 2017-07-19 17:18:09

sur Windows 10, nous devons aller à Windows Explorer , puis aller à View et vérifier la case pour View hidden files .

naviguez ensuite vers le dossier qui contient le lien SVN sur Windows Explorer et supprimez le dossier/fichier .svn .

-1
répondu Praseeda 2016-04-27 22:01:48