Comment afficher une ancienne version d'un fichier SVN?

156

J'ai un fichier SVN qui manque maintenant de logique et je dois donc revenir environ 40 révisions à l'époque où il avait la logique dont j'ai besoin. À part essayer d'afficher un diff du fichier dans la ligne de commande ( très difficile à lire ), y a-t-il un moyen d'obtenir une copie de ce fichier à examiner afin que je puisse l'étudier pour en récupérer des parties?

Xeoncross
la source

Réponses:

237

Vous pouvez mettre à jour vers une révision plus ancienne:

svn update -r 666 file

Ou vous pouvez simplement afficher le fichier directement:

svn cat -r 666 file | less
John Kugelman
la source
13
svn cat -r 666 file | lessest parfait pour que je puisse le lire avec vim!
Xeoncross
4
@sillyMunky Essayez svn cat | vim -. Si la coloration syntaxique de vim ne démarre pas automatiquement, faites-le :set syntax=java(ou dans la langue choisie).
John Kugelman
1
Merci beaucoup John, en fait, je suis sur debian et j'ai trouvé qu'il y avait un joli petit paquet de coloration syntaxique appelé 'source-highlight' afin que less puisse automatiquement récupérer la coloration syntaxique (en fait, je l'alias maintenant à lesss pour la distinction).
sillyMunky
2
svn cat -r 666 file> file_666.js si vous souhaitez voir ce fichier entier: p
Parijat Kalia
ou si vous utilisez bash vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )
h4unt3r
5

Il est également intéressant de comparer le fichier de la révision de travail courante avec le même fichier d'une autre révision.

Vous pouvez faire comme suit:

$ svn diff -r34 file
Kreshnik
la source
2

Mettre à jour vers une révision spécifique:

svn up -r1234 file
Chris
la source
1

Je pense que la meilleure façon d'afficher les révisions est d'utiliser un programme / une application qui vous facilite la tâche. J'aime utiliser trac: http://trac.edgewall.org/wiki/TracSubversion

Il fournit un excellent navigateur svn et permet de revenir très facilement sur vos révisions.

Il peut être un peu exagéré de configurer cela pour une révision spécifique que vous souhaitez vérifier, mais cela pourrait être utile si vous comptez faire beaucoup cela à l'avenir.

wajiw
la source
1

En utilisant les dernières versions de Subclipse , vous pouvez réellement les afficher sans utiliser l'invite cmd. Sur le fichier, cliquez simplement avec le bouton droit de la souris => Équipe => Passer à une autre branche / étiquette / révision. Outre le champ de révision, vous cliquez sur sélectionner et vous verrez toutes les versions de ce fichier.

Kheem
la source
1

Pour répondre directement à la question de savoir comment "obtenir une copie de ce fichier":

svn cat -r 666 file > file_r666

alors vous pouvez voir le nouvellement créé file_r666avec n'importe quel visualiseur ou programme de comparaison, par exemple

kompare file_r666 file

montre bien les différences.

J'ai posté la réponse parce que les commandes de la réponse acceptée ne donnent en fait pas de copie du fichier et parce svn cat -r 666 file | vimque ne fonctionne pas avec mon système ( Vim: Error reading input, exiting...)

réprimandes
la source