2013-07-26 7 views
0

J'utilise ProjectLocker avec TortoiseSVN et VisualSVN. Hier soir, alors que j'essayais de trouver un problème avec wierd, j'ai ramené quelques fichiers à la dernière date de production. Cela s'est avéré être environ 3-4 révisions en arrière. Lorsque les anciens fichiers n'ont pas résolu le problème, j'ai essayé de faire une mise à jour pour revenir à la révision la plus récente pour les deux fichiers en question.Puis-je récupérer mon historique de révision dans SVN?

Je vois maintenant (merci à "Questions similaires") que j'aurais dû utiliser Update to Revision au lieu de Revert. La question est, est-ce que je peux obtenir ces révisions d'une manière ou d'une autre?

Répondre

1

Vous devriez pouvoir revenir à la révision avant de revenir à la version précédente. Le SVN ne prend pas directement en charge la restauration ("Revert" comme l'appelle tortue). Au lieu de cela, il prend une copie de l'ancienne révision et la copie sur la nouvelle.

Mais cela laisse toujours la révision que vous évitiez de mettre en place. Lorsque vous rétablissez cette fois, vous devrez peut-être utiliser une révision de rattachement (par exemple, pour la révision 123, vous revenez à http://mysvndomain.com/repos/foo/[email protected].)

+2

Dans Subversion, "revert" * a * un sens - mais pas le sens qui est utilisé ici. Une "version précédente" de Subversion annule les modifications non validées dans une copie de travail. Ce qui est décrit ici est mieux décrit comme "défaire ou annuler un ensemble de révisions". – alroc

+1

TortoiseSVN abuse du mot "revenir". Sa boîte de dialogue contient également des options pour "revenir à cette révision" et "rétablir les modifications apportées par cette révision". Le premier signifie en fait "mettre votre copie de travail telle qu'elle était après ce commit". Le second signifie en réalité "annuler les modifications effectuées par ce commit dans la copie de travail". –

+0

J'ai modifié la réponse pour rendre cela un peu plus clair. –

1

Rétablir votre retour, et les fichiers seront comme 2 révisions il y a.

1

Le mot "revert" a une signification spéciale dans Subversion, et ce n'est pas ce que vous utilisez pour . vOICI Subversion revert signifie pour annuler les modifications non engagés dans votre copie de travail - Etat dépôt n'est pas touché dans ce cas

Mise à jour à la révision est pas applicable ici, comme vous ne pouvez pas commettre de cet état

.. Ce que vous auriez dû faire au départ est ce que l'on appelle un reverse merge Vous appliquez une fusion d'un ou de plusieurs changements pour ramener l'état du référentiel à c'était dans une révision précédente (votre dernière révision de production), au lieu de simplement copier les fichiers et de les valider en tant que nouvelle révision. Vous pouvez toujours le faire dans votre situation actuelle - inverser fusionner le changement que vous venez de commettre, et commettre cela. Cela vous ramènera au "plus récent". Votre historique de révision sera un peu bizarre, mais pas complètement cassé.