17 votes

Comment rétablir SEULEMENT les répertoires dans une copie de travail SVN ?

Je veux revenir sur une et tous les sous-répertoires dans une copie de travail SVN pour qu'ils correspondent au référentiel mais je je ne veux toucher à aucun fichier dans ces répertoires.

L'une de mes applications SVN définit récursivement une propriété SVN sur chaque répertoire de ma copie de travail, mais je veux revenir sur ces changements pour arrêter de les mettre en évidence et d'essayer de valider les changements dans les propriétés SVN. Le simple fait de le changer pour qu'il corresponde au HEAD ne fonctionne pas.

Des idées ? J'ai consulté diverses ressources SVN, mais aucune ne semble traiter ce cas particulier.

104voto

ian Points 11741

Fonctionne sur toutes les plateformes :

svn revert . --recursive

(Notez que cela va tout rétablir, pas seulement les répertoires).

9voto

eugene y Points 37378

Vous pourriez utiliser find combiné avec svn revert :

find . -type d | grep -v .svn | xargs svn revert

Cela ne touchera pas les fichiers contenus dans les répertoires, à moins que vous n'utilisiez la commande -R (qui est l'équivalent de --depth=infinity ).

2voto

Neil Barnwell Points 20731

Tout d'abord, faites une copie de votre copie de travail dans un endroit sûr . :)

Vous pouvez modifier les propriétés des copies de travail svn en utilisant des commandes comme celle-ci :

REM Delete all mergeinfo properties recursively
svn propdel svn:mergeinfo -R

1voto

detunized Points 8559

Sous Windows, à partir de la ligne de commande, vous pouvez faire cela :

for /d /r %i in (*) do svn revert %i

Si vous l'appelez depuis un fichier batch, utilisez %%i à la place. S'il vous plaît, sauvegardez d'abord !

Cette commande est sale et passera par tous les répertoires, même ceux qui n'ont pas été modifiés ou ceux qui ne sont pas sous svn . Vous pourriez utiliser quelque chose comme ce script de Ruby pour faire de manière plus propre :

`svn st`.split("\n").grep(/^ M\s+(.*)/) { $1 }.find_all { |i| File.directory? i }.each do |i|
  system "svn revert #{i}"
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X