Si j'ai une copie de travail d'un référentiel Subversion, existe-t-il un moyen de supprimer tous les fichiers non versionnés ou ignorés de cette copie de travail avec une seule commande ou un seul outil? Essentiellement, je recherche l'analogue SVN git clean
.
Une ligne de commande ou une solution GUI (pour TortoiseSVN) serait acceptable.
svn
tortoisesvn
ignore
Nick Meyer
la source
la source
Réponses:
Utilisation de TortoiseSVN:
la source
svn cleanup --remove-unversioned --remove-ignored .
Il présente les caractéristiques suivantes:
--xml
option et analyser la sortie xml résultante)svn status
imprime d'autres caractères d'état avant le nom du fichier (ce qui ne devrait pas parce que les fichiers ne sont pas suivis, mais juste au cas où ...)J'utilise un script shell nommé
svnclean
qui contient les éléments suivants:la source
IFS
revenir à ce que c'était avant. Lorsque vous le faitesVARNAME=value command
, l'attribution devalue
àVARNAME
s'applique uniquement pendant l'exécution decommand
(à quelques exceptions près qui ne s'appliquent pas àread
). Voir la spécification POSIX et ce rapport de bogue POSIX pour plus de détails.Je sais que c'est vieux, mais au cas où quelqu'un d'autre tomberait dessus, les nouvelles versions (1.9 ou ultérieures) du support svn
--remove-unversioned
, par exemplesvn cleanup . --remove-unversioned
.https://subversion.apache.org/docs/release-notes/1.9.html#svn-cleanup-options
la source
svn cleanup . --remove-ignored
Cet oneliner pourrait vous aider:
Utilisez avec précaution!
la source
svn status --no-ignore
pour capturer les fichiers ignorés un puits.Modifier les réponses de Yanal-Yves Fargialla et gimpf à l'aide de Powershell (mais ne pas être autorisé à commenter le message original de Stackoverflow):
Ceci ajoute le carat ("^") pour spécifier le début de la ligne, évitant ainsi de faire correspondre tous les fichiers contenant la lettre "i". Ajoutez également les indicateurs pour -recurse et -force à rm pour rendre cette commande non interactive et donc utilisable dans un script.
la source
Beaucoup de choses dans SVN peuvent être faites de différentes manières, comme en témoignent les réponses variées en ligne de commande données ici. Avec l'avènement de la version 1.7, il existe une autre technique pour TortoiseSVN qui, en fait, fournit une résolution plus fine que la réponse de Stefan fournie, vous permettant de sélectionner les fichiers non versionnés séparément des fichiers ignorés. Sélectionnez simplement
TortoiseSvn >> Clean up...
pour ouvrir cette boîte de dialogue.la source
Avec PowerShell:
Depuis la ligne de commande:
la source
-match '[\?i]' -replace '^.{8}'
place, qui fonctionne correctement même si un nom de fichier commence par un espace et supprime également les fichiers ignorés.code
@ (svn status --no-ignore) -match '[\? I]' -replace '^. {8}' | rm ». Compris avec l'aide de ce postpowershell -Command "&{(svn status --no-ignore) -match '[\?i]' -replace '^.{8}' | remove-item -force -recurse}"
Cet oneliner fonctionne pour moi (basé sur la réponse de Richard Hansen, qui, étonnamment, n'a pas fonctionné pour les fichiers contenant des espaces):
la source
-fr
à larm
commande: svn status --no-ignore | grep '^ [I?]' | couper -c 9- | xargs -d "\ n" -I {} rm -fr {}Utilisation de TortoiseSVN:
Pas vraiment une solution agréable et propre, mais le moyen le plus rapide que je connaisse (sous Windows).
Merci à pkh pour le conseil avec les fichiers ignorés.
la source
Ceci est similaire à d'autres réponses, mais obtient en fait des fichiers ignorés (notez le 'I' dans les RE):
la source
Quelqu'un a dit que vous ne pouviez pas le faire à partir de la ligne de commande Windows.
Taureau.
Le fait-il en une seule ligne et ne nécessite pas un seul outil GNU. :)
la source
for /f "tokens=2 delims= " %%I IN ('svn st --no-ignore ^| findstr /R "^[I?]"') DO (DEL /S /F /Q /A:H "%%I" & rmdir /S /Q "%%I")
%%
sur%
vous ne pouvez pas les supprimer avec seulement la ligne de commande SVN (pas sûr des outils GUI cependant) si vous êtes sous Linux, cela peut aider:
http://www.guyrutenberg.com/2008/01/18/delete-unversioned-files-under-svn/
L'autre méthode (brutale) consiste à valider les modifications, à tout supprimer du dossier et à récupérer à nouveau.
la source