Si vous supprimez un répertoire d'une copie de travail SVN, mais que vous ne l'avez pas encore engagé, 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 courante lorsque vous tapez "svn undo d", mais les résultats de la recherche ne sont pas utiles.
edit: j'aimerais une solution qui fonctionne dans la subversion 1.4.4
Réponses:
svn revert deletedDirectory
Voici la documentation de la
svn revert
commande.ÉDITER
Si a
deletedDirectory
été supprimé avecrmdir
et nonsvn rm
, vous devrez le fairesvn update deletedDirectory
au lieu.
la source
svn delete
pour supprimer le répertoire, maisrmdir
que vous l'avez plutôt supprimé avec , vous devrez à lasvn update deletedDirectory
place.1) faire
2) analyser la sortie pour des erreurs comme
3) appelez svn pour chacun des répertoires d'erreur:
la source
svn up
de le faire vérifier, j'ai réalisé le conflit, je l'ai faitsvn resolved foo
etsvn status
j'ai dit que j'avais environ 10k fichiers marqués commeD
.svn up
etsvn revert
ne les a pas récupérés, mais cela a résolu le problème.--recursive
qui aide à restaurer le contenu des répertoires supprimés.Ce qui a fonctionné pour moi c'est
la source
Effectuez une opération de restauration (récursive) à partir d'un niveau supérieur au répertoire que vous avez supprimé.
la source
Pour en faire une seule doublure, vous pouvez essayer quelque chose comme:
la source
La solution la plus simple que j'ai pu trouver était de supprimer le répertoire parent de la copie de travail (avec rm -rf, pas svn delete), puis d'exécuter svn update dans le grand-parent. Par exemple, si vous avez supprimé a / b / c, rm -rf a / b, cd a, svn up. Cela ramène tout. Bien sûr, ce n'est une bonne solution que si vous n'avez aucune autre modification non validée dans le répertoire parent que vous souhaitez conserver.
J'espère que cette page sera en haut des résultats la prochaine fois que je google cette question. Ce serait encore mieux si quelqu'un suggérait une méthode plus propre, bien sûr.
la source
Vous pouvez supprimer le dossier et mettre à jour le répertoire parent avant de valider:
rm -r some_dir
svn update some_dir_parent
la source