SVN annuler la suppression, avant de s'engager
Si vous supprimez un répertoire à partir d'une SVN copie de travail, mais qui n'ont pas encore, il n'est pas évident de savoir comment le récupérer. Google suggère même de "svn annuler la suppression, avant de s'engager" en tant que commune de requête lorsque vous tapez "svn annulation d", mais les résultats de la recherche sont inutiles.
edit: j'aimerais une solution qui fonctionne dans la subversion 1.4.4
- Existe-il des répertoires frère de celui que vous avez supprimé avec modifications en attente? Si donc, être prudent lors de la restauration à partir d'un niveau plus élevé, vous risquez de perdre des modifications.
Vous devez vous connecter pour publier un commentaire.
svn revert deletedDirectory
Voici la documentation pour la
svn revert
commande.MODIFIER
Si
deletedDirectory
a été supprimé à l'aide dermdir
et passvn rm
, vous aurez besoin de fairesvn update deletedDirectory
à la place.
svn delete
pour supprimer le répertoire, mais au lieu supprimé à l'aide d'rmdir
, vous aurez besoin desvn update deletedDirectory
à la place.svn update directory_name
.1) ne
2) analyse la sortie des erreurs comme
3) appel svn pour chaque erreur répertoires:
svn up
de l'obtenir pour vérifier, réalisé le conflit, n'asvn resolved foo
etsvn status
m'a dit que j'avais environ 10k fichiers marqués commeD
.svn up
etsvn revert
n'a pas revenir, mais cela a résolu le problème.--recursive
qui aide à restaurer le contenu de supprimé les répertoires.rm
le dossier etsvn update
mais svn avait marqué le dossier pour le déplacement en raison du conflit. Cette solution partiellement fonctionné pour moi. Il ramena les dossiers mais pas les fichiers. L'exécution desvn update
n'a pas le ramener fichiers. J'ai fini par retirer le dossier de niveau supérieur, puis à l'aidesvn update
apporté les fichiers en arrière (merci @LaC).Ce qui a fonctionné pour moi est
Faire un (récursif) opération de restauration à partir d'un niveau au-dessus du répertoire que vous avez supprimé.
Pour en faire une seule ligne, vous pouvez essayer quelque chose comme:
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 de svn delete), puis exécutez svn update dans le grand-parent. Par exemple, si vous avez supprimé un/b/c, rm -rf/b, cd, svn up. Qui apporte tout le dos. 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 va être au top des résultats de la prochaine fois que je google à cette question. Il serait encore mieux si quelqu'un a suggéré une méthode plus propre, bien sûr.
Vous pouvez supprimer le dossier et de mettre à jour le répertoire parent avant de s'engager:
rm -r some_dir
svn update some_dir_parent