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.
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).
sous Linux, cela fonctionnera:
find . -iname ".svn" -print0 | xargs -0 rm -r
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.
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".
sur Linux la commande est:
svn delete --keep-local file_name
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.
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".
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:
cela a bien fonctionné 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 pour vous assurer que vous n'avez rien manqué.
il suffit de supprimer le .svn folder à l'intérieur du dossier requis, puis la commande sera automatiquement retirée.
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 /
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
pour ceux qui utilisent NetBeans avec SVN, il y a 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 Windows Explorer:
- Enlever Tout .svn
- Enlever Tout Sauf La Racine .svn
- Supprimer Local Des Pensions De Fichiers
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.
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
-
si vous pouviez simplement remettre le fichier/dossier de la Corbeille ou annuler la dernière étape lorsque vous l'avez supprimé, alors...
-
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.
-
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.
Check this, http://www.hacktrix.com/how-to-delete-svn-folders-from-your-project-on-windows-linux-and-mac
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.
une autre solution Linux (plus simple):
rm -r `find /path/to/foo -name .svn`
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.
cette commande fonctionne pour moi:
trouver . - iname".svn " - print0 / xargs -0 rm-r
j'utilise rsync:
# copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
rsync -av --exclude .svn src srcStripped
NetBeans IDE les utilisateurs peuvent le faire comme ci-dessous:
- Ouvrir le SVN du projet dans l'IDE
-
sélectionner le projet
clic droit Subversion Exportation 151910920"
-
dans la boîte de dialogue
exportation vers le dossier /var/tmp/projectname appuyez sur exporter attendre affichera complet va demander voulez-vous
-
vous pouvez maintenant passer à Git:)
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.
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.
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 {} \;
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
.