SVN annuler la suppression avant la validation

Si vous supprimez un répertoire d’une copie de travail SVN, mais que vous ne l’avez pas encore fait, il n’est pas évident de savoir comment le récupérer. Google suggère même “svn undo delete before commit” comme requête commune lorsque vous tapez “svn undo d”, mais les résultats de la recherche sont inutiles.

edit: Je voudrais une solution qui fonctionne dans subversion 1.4.4

svn revert deletedDirectory

Voici la documentation de la commande svn revert .


MODIFIER

Si deletedDirectory été supprimé avec rmdir et non svn rm , vous devez le faire

svn update deletedDirectory

au lieu.

1) faire

 svn revert . --recursive 

2) parsingr les sorties pour des erreurs comme

 "Failed to revert 'dir1/dir2' -- try updating instead." 

3) appelez svn pour chacun des répertoires d’erreur:

 svn up dir1/dir2 

Ce qui a fonctionné pour moi est

 svn revert --depth infinity deletedDir 

Effectuez une opération (récursive) de restauration depuis un niveau supérieur au répertoire que vous avez supprimé.

Pour en faire un seul paquebot, vous pouvez essayer quelque chose comme:

 svn status | cut -d ' ' -f 8 | xargs svn revert 

La solution la plus simple que j’ai pu trouver consistait à supprimer le répertoire parent de la copie de travail (avec rm -rf, pas svn delete), puis à exécuter svn update dans le grand-parent. Par exemple, si vous supprimez un / b / c, rm -rf a / b, cd a, svn up. Cela ramène tout. Bien sûr, ce n’est qu’une bonne solution si vous n’avez pas d’autres modifications non validées dans le répertoire parent que vous souhaitez conserver.

J’espère que cette page sera en tête des résultats la prochaine fois que je poserai cette question sur Google. Ce serait encore mieux si quelqu’un proposait une méthode plus propre, bien sûr.

Vous pouvez supprimer le dossier et mettre à jour le répertoire parent avant de valider:

rm -r some_dir

svn update some_dir_parent