Existe-t-il une seule commande Subversion qui «réinitialiserait» une copie de travail exactement à l'état stocké dans le référentiel? Quelque chose comme git reset --hard
ou (ha, la réinitialisation matérielle de Git ne supprime pas non plus les fichiers non versionnés!) rm -rf wc && svn co <url> wc
.
Mise à jour: je ne suis pas après un simple retour, car cela ne supprime pas les fichiers supplémentaires dans la copie de travail. Je veux vraiment quelque chose qui équivaudrait à supprimer la copie de travail et à la vérifier à nouveau, mais sans avoir à télécharger à nouveau les données. (Évidemment, cela ne me dérange pas de perdre tous les changements non validés.)
git clean -xdf
pour supprimer les éléments qui ne sont pas sous contrôle de code source.git clean
cite exactement ce que je recherche: "Cela peut être utilisé (éventuellement en conjonction avec git reset) pour créer un répertoire de travail vierge pour tester une version propre." Dommage que Subversion ne semble pas avoir quelque chose comme ça intégré.Réponses:
Vous pouvez revenir de manière récursive comme ceci:
svn revert --recursive .
Il n'y a aucun moyen (sans écrire un script créatif) de supprimer des éléments qui ne sont pas sous contrôle de code source. Je pense que le plus proche que vous puissiez faire est d'itérer sur tous les fichiers, d'utiliser alors grep le résultat de
svn list
, et si le grep échoue, supprimez-le.EDIT : La solution pour le script de création est ici: supprimer automatiquement les fichiers non versionnés de Subversion
Vous pouvez donc créer un script qui combine un
revert
avec la réponse de la question liée qui vous convient le mieux.la source
svn cleanup
sur les toilettes. C'est ma pratique standard pour nettoyer après des fusions avortées et ainsi de suite.Pour rétablir les fichiers suivis
Pour nettoyer les fichiers non suivis
Le
-rf
peut / devrait sembler effrayant au début, mais une fois compris, ce ne sera pas pour ces raisons:rm
-rf
est obligatoire, sinon ces répertoires ne seront pas supprimésPour revenir en arrière puis nettoyer (la question OP)
Pour une facilité d'utilisation constante
Ajoutez un alias permanent à vos .bash_aliases
la source
awk: fatal: error reading input file '-': Input/output error
?
à laawk
commande, sinon cela correspondait à toutes les lignes de la sortie desvn status
Supprimez tout ce qui se trouve dans votre copie locale en utilisant:
Et tout revenir récursivement en utilisant la commande ci-dessous.
C'est beaucoup plus rapide que de supprimer tout le répertoire, puis de procéder à une nouvelle extraction, car les fichiers sont en cours de restauration à partir de vos métadonnées SVN locales. Il n'a même pas besoin d'une connexion réseau.
la source
pour tout réinitialiser.
pour un seul fichier
la source
Supprimez les fichiers non versionnés et annulez les modifications:
En dehors:
la source
Solution pure Windows cmd / bat:
la source
Supprimer la copie de travail du système d'exploitation et la récupérer à nouveau est le plus simple, mais évidemment pas une seule commande.
la source
Très rapide et simple et fait exactement ce que vous voulez
Le /(config|.ini)/ est pour mes propres besoins.
Et peut-être une bonne idée d'ajouter --no-ignore à la commande svn
la source
Pour supprimer les fichiers non suivis
J'ai pu lister tous les fichiers non suivis signalés par
svn st
dans bash en faisant:Si vous vous sentez chanceux, vous pouvez remplacer
echo
parrm
pour supprimer les fichiers non suivis. Ou copiez les fichiers que vous souhaitez supprimer à la main, si vous vous sentez moins chanceux.(J'ai utilisé la réponse de @ abe-voelker pour rétablir les fichiers restants: https://stackoverflow.com/a/6204601/1695680 )
la source