web-dev-qa-db-fra.com

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 faire en sorte que Subversion arrête de suivre ce dossier et tous 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.

253
Brian Boatright

De plus, si vous utilisez TortoiseSVN, exportez-le simplement vers l’emplacement actuel de la copie de travail et les dossiers et les fichiers .svn seront supprimés.

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 existe un seul dossier .svn, situé à 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 (que vous utilisiez TortoiseSVN ou des outils de ligne de commande).

255
crashmstr

Sous Linux, cela fonctionnera:

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

Essayez svn export .

Vous devriez pouvoir faire quelque chose comme ça:

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

Et puis supprimez simplement l'ancienne copie de travail.

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

118
pkaeding

Si vous utilisez Windows, vous pouvez effectuer une recherche sur ce dossier pour .svn et cela les listera tous. Pressage Ctrl + A sélectionnera tous les éléments et le fait d'appuyer sur supprimer enlèvera tout le contenu 'embêtant' de Subversion.

32
graham.reeds

Sous Linux, la commande est la suivante:

svn delete --keep-local file_name
22
bunteKnete

J'ai constaté que vous n'avez même pas besoin de copier dans un emplacement temporaire. Tu peux faire un

svn export --force .

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

21
I. J. Kennedy

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".
10
user1439712

Ça a bien marché pour moi:

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

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

Quoi que je fasse, chaque fois que je lançais une "mise à jour", les fichiers étaient restaurés et tous ramenés. Je ne voulais pas les supprimer du référentiel, mais simplement de mon ordinateur - mais je devais garder le reste de la copie de travail intacte (je ne pouvais donc pas simplement supprimer le dossier .svn).

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

Il s'agit d'une "mise à jour" côté client qui exclut un répertoire spécifique. Vous pouvez le trouver dans les manuels à svnbook.com . En bref, il décrit ceci comme:

À partir de Subversion 1.6, vous pouvez adopter une approche différente. Tout d'abord, consultez le répertoire dans son intégralité. Puis exécutez svn update --set-depth exclude 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 de la souris sur le dossier que vous ne voulez pas, cliquez sur Update to revision..., puis réglez le paramètre 'Update Depth' sur Exclude, comme indiqué dans cet écran. coup:

enter image description here

8
brazilianldsjaguar

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

7
1800 INFORMATION

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

3
Ramudu

Sous Windows, vous pouvez ajouter un lien rapide pour cela dans le menu contextuel de votre 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\" \""

Cela ajoutera un élément appelé "Supprimer les dossiers SVN" à votre menu contextuel. Cela supprimera tous les dossiers .svn de ce dossier et tous les sous-dossiers.

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

3
Tobias

Sous 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.

2
Unknown_Guy

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 sauf la racine .svn
  • Supprimer les fichiers Local Repo
2
Martin Buberl

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

2
Ladik

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

2
andy.gurin
1
delete svn folder

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 créer une copie de travail non versionnée. Si vous répondez oui, les répertoires de contrôle seront supprimés et vous obtiendrez une arborescence de répertoires simple et non versionnée.

1
Srikanth

Une autre solution Linux (plus simple):

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

LE MEILLEUR ET LE PLUS FACILE

Si vous pensez que vous pourriez gagner avec une simple commande magique, vous échouerez! SVN est vraiment délicat et revient toujours avec un nouveau message d'erreur dans Xcode. Tôt ou tard, promis ... vous devez donc le faire intelligemment!

Comme vous le savez, la pratique courante et optimale sous Xcode consiste à supprimer un fichier dans le volet de projet de gauche. Si vous l'avez manqué et en quelque sorte supprimé dans le Finder, vous avez des problèmes. Grande difficulté! Mais vous pourriez le résoudre et gagner du temps si vous le faites bien.

D'abord, vous devez supprimer la référence SVN du fichier ou du dossier avant de pouvoir la supprimer

  1. Si vous pouviez simplement remettre le fichier/dossier dans la corbeille ou annuler la dernière étape après l'avoir supprimé, alors ...

  2. Allez au terminal - oui, au bon vieux terminal - et allez à cet endroit. Le meilleur moyen suffit de taper cd puis tirez le dossier/fichier vers le terminal. Vous obtiendrez quelque chose de similaire

cd/Users/Nom d'utilisateur/Documents/Apps_Developing/...

Tu pourrais vérifier où es-tu

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 devrez le supprimer manuellement dans le Finder.

1
BootMaker

J'utilise rsync:

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

A partir d'une ligne de commande Windows:

rmdir .svn /s /q
0
Michael Ross

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. Le dossier SVN apparaît alors. Il suffit de supprimer ce dossier.

0
dush88c

Les utilisateurs de NetBeans IDE peuvent le faire comme suit:

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

    clic droit Exporter Subversion

  3. Dans la boite de dialogue

    exportation dans dossier/var/tmp/nom du projet presse exportation attendra montrera complet demandera si vous voulez l'ouvrir ouvert à la volée

  4. Vous pouvez maintenant passer à Git :)

0
YumYumYum

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.

0
Alvin567

En tant que point essentiel, lorsque vous utilisez le shell pour supprimer des dossiers .svn, vous avez besoin de l'argument - depth pour empêcher commande find entrant dans le répertoire qui vient d'être supprimé et affichant des messages d'erreur tels que.

"find: ./vv: 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 {} \;
0
fatihk

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

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

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

0
Javier Salinas