désolé pour l'utilisation de l'espace sur une réitération de la déjà donné la réponse mais c'est quelque chose que j'ai toujours de la difficulté avec.
Disons que j'ai mis à jour les fichiers locaux vers la dernière version, qui est de 854. Ensuite, je voudrais obtenir une ancienne révision de la version d'un fichier de quelques révision antérieure, disons révision 851.
Exemplaire de travail:
svn copy -r 851 svn+ssh://<repository URL>/l3toks.dtx ./l3toks.dtx
.. cependant, je ne peux pas être dérangé grepping pour les pensions de l'URL :)
Mise à jour apparemment peut fonctionner:
svn up -r 851 ./l3toks.dtx
... cependant, il marque aussi la copie locale "fraîchement extrait", ou plutôt "même en ligne de révision" (c'est à dire dans Tortoise/RabbitVCS vous obtenez une coche verte OK) ce qui signifie que vous ne pouvez pas faire svn ci -m "rolled back to r 851"
: tout simplement parce que le local subversion
exécutable ne sera pas un avis, les modifications locales, et ne sera pas pris la peine de télécharger quoi que ce soit au référentiel en ligne.
Et, comme déjà répondu, à l'inverse de fusion fonctionne - mais dans ce cas, on ne doit pas reposer sur le raccourci de la syntaxe, mais surtout de l'état:
svn merge -r HEAD:851 l3toks.dtx
--- Reverse-merging r854 through r852 into 'l3toks.dtx':
U l3toks.dtx
Je dois l'admettre - je ne comprendrais jamais la phrase "Renverser-fusionner r854 par r852 dans le fichier" pour dire "Viens r851 de votre fichier, et remplacé à tout ce que vous avait déjà localement et il est marqué comme différente de la dernière révision, de sorte que vous pouvez vérifier en arrière en ligne comme un nouveau "rollback" révision", mais je suppose (et espère :) ) qu'est ce qu'il fait :)
Après cela, on peut utiliser svn diff
pour un rapide faire-bien sûr, si nous avons obtenu le droit de révision de retour à l'échelle locale; aussi, le fichier sera marqué avec un point d'exclamation rouge dans Tortoise/RabbitVCS (qui est différente de la dernière version), et donc, svn ci -m "rolled back to r 851"
pouvez exécuter cette fois.
Notez également que si vous, enfin, de changer d'avis après inverse de fusion (c'est à dire de toute façon vous souhaitez continuer à travailler sur la dernière version de TÊTE, ici 854 - après avoir roulé vers 851 localement, mais n'ont pas encore engagé la restauration), vous ne devriez pas utiliser svn up
, car il sera tout simplement dire qu'il est déjà "À la révision 854"; utiliser à la place svn revert --recursive .
ou similaire...
Cheers!
Ref: Comment faire pour annuler les Modifications à l'aide de la Subversion - Jacob Wright – Flex, AIR, PHP, etc.
EDIT: ... et apparemment, exactement le même effet que l' svn merge -r HEAD:851 l3toks.dtx
, peut être réalisé avec:
svn export -r 851 l3toks.dtx
A l3toks.dtx
Export complete.