101 votes

Est-il possible de récupérer d’un accidentelle « svn revert » ?

J'ai réussi à me tirer une balle dans le pied, ce matin, en procédant comme suit:

  1. Commencé à travailler sur l'évolution de mon projet
  2. Faites un tas de modifications à tout un tas de fichiers
  3. Rendu compte que mon approche était tout faux, et que je devais recommencer
  4. cd pour le premier niveau de mon projet et a fait un "svn --recursive revenir ." restaurer mon sandbox local à sa pré-changements d'état.
  5. Hurla d'horreur que j'ai réalisé qu'il y avait eu un certain nombre d'autres changements remarquables dans ma sandbox local, et j'ai eu juste effacé tous. (le serveur svn a été, vendredi dernier, donc je n'avais pas été en mesure de les vérifier, et j'avais oublié à leur sujet sur le week-end)

Heureusement, dans ce cas, j'avais fait un "svn diff > temp.txt" avant de quitter le travail le vendredi et le temp.txt fichier était toujours sur mon disque dur, j'ai donc été en mesure de nourrir ce fichier en "patch" et récupérer mes modifications perdues.

Mais pour ma future référence (c'est à dire la prochaine fois que je fais la même erreur stupide)... est-il possible de dire svn pour annuler un "svn revert"? N'svn garder une copie de sauvegarde de la local/non vérifiée dans diff n'importe où?

105voto

shto Points 1

Il y a une solution... allez dans votre corbeille vous y trouverez la dernière version du fichier supprimé. Tortue « jeter » au recycler bin tous les fichiers qu’il reviendra.

84voto

Peter Parker Points 13770

Non, absolument pas.

Si vous dites à la Subversion, qu'il devrait revenir à un fichier, toutes les modifications sont allées par le vent.

Seulement votre mémoire peut les récupérer.

Exception : Nouveaux fichiers vous avait ajouté, perdra seulement leur statut « ajouté », mais le fichier reste dans ce répertoire, que le statut est unknown("?")

32voto

Vladimir Points 4511

Pas vraiment Subversion spécifiques, mais si vous travaillez avec Eclipse, vous pouvez tenter votre chance dans l'histoire locale.

Maintenant, quelque chose d'un peu plus de Subversion spécifique: si vous ne voulez pas faire une branche pour chaque changement que vous faites, vous pouvez garder un couple de tronc vérifié localement (tronc-modif-1, coffre-modif-2...). Chaque "modification" est fait sur un autre arbre et vous avez seulement besoin de garder une liste de vérifier correspondent à la modification.

Ou vous pouvez utiliser Git en local, mais je n'ai jamais essayé.

14voto

JProgrammer Points 191

Récemment fait cette erreur de ne pas commettre de nouvelles modifications de fichiers (environ 10) sur SVN, et ils ont tous disparu à cause de mon erreur stupide. Mais ce qui m’a sauvé, c’était que les fenêtres « Restaurer les versions précédentes » option dans le menu contextuel. Ouf, c’était un soulagement et une leçon apprise.

6voto

Arkde Points 1820

Si vous utilisez InteliJ, vous êtes une personne chanceuse. Sur le menu principal, vous avez une option de contrôle de Version, et en dessous, vous trouverez option histoire locale, où vous trouverez toute l’histoire pour le fichier sélectionné, y compris toute l’opération, vous l’avez fait avec ce fichier (mise à jour, valider, revenir).

Bonne chance, Arkde

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