Wie kann ich eine ältere Version einer SVN-Datei anzeigen?

156

Ich habe eine SVN-Datei, in der jetzt eine Logik fehlt, und daher muss ich ungefähr 40 Revisionen auf die Zeit zurückgehen, als sie die Logik hatte, die ich brauche. Andere als zu versuchen , einen diff der Datei in der Befehlszeile (sehen sehr schwer zu lesen ), ist es eine Möglichkeit, eine Kopie dieser Datei zu bewerten erhalten könnte , damit ich es Teile erholen studieren können?

Xeoncross
quelle

Antworten:

237

Sie können auf eine ältere Version aktualisieren:

svn update -r 666 file

Oder Sie können die Datei einfach direkt anzeigen:

svn cat -r 666 file | less
John Kugelman
quelle
13
svn cat -r 666 file | lessist perfekt, damit ich es mit vim durchlesen kann!
Xeoncross
4
@sillyMunky Versuchen Sie svn cat | vim -. Wenn die Syntaxhervorhebung von vim nicht automatisch aktiviert wird, tun Sie dies :set syntax=java(oder in welcher Sprache auch immer).
John Kugelman
1
Vielen Dank John, eigentlich bin ich auf Debian und habe festgestellt, dass es ein nettes kleines Syntax-Hervorhebungspaket namens "Source-Highlight" gibt, damit weniger Syntax-Hervorhebungen automatisch aufnehmen kann (eigentlich alias ich dies jetzt zur Unterscheidung auf Lesss).
dummMunky
2
svn cat -r 666 file> file_666.js wenn Sie die gesamte Datei
anzeigen möchten
oder wenn Sie bash vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )
h4unt3r
5

Es ist auch interessant, die Datei der aktuellen Arbeitsversion mit derselben Datei einer anderen Version zu vergleichen.

Sie können wie folgt vorgehen:

$ svn diff -r34 file
Kreshnik
quelle
2

Update auf eine bestimmte Revision:

svn up -r1234 file
chris
quelle
1

Ich glaube, der beste Weg, um Revisionen anzuzeigen, ist die Verwendung eines Programms / einer App, die es Ihnen einfach macht. Ich benutze gerne trac: http://trac.edgewall.org/wiki/TracSubversion

Es bietet einen großartigen SVN-Browser und macht es wirklich einfach, Ihre Revisionen durchzugehen.

Es mag ein wenig übertrieben sein, dies für eine bestimmte Revision einzurichten, die Sie überprüfen möchten, aber es könnte nützlich sein, wenn Sie dies in Zukunft häufig tun werden.

wajiw
quelle
1

Mit den neuesten Versionen von Subclipse können Sie sie tatsächlich anzeigen, ohne die Eingabeaufforderung cmd zu verwenden. Klicken Sie in der Datei einfach mit der rechten Maustaste => Team => Wechseln Sie zu einem anderen Zweig / Tag / einer anderen Revision. Neben dem Revisionsfeld klicken Sie auf Auswählen, und alle Versionen dieser Datei werden angezeigt.

Kheem
quelle
1

So beantworten Sie direkt die Frage, wie Sie "eine Kopie dieser Datei erhalten":

svn cat -r 666 file > file_r666

dann können Sie das neu erstellte file_r666mit jedem Viewer oder Vergleichsprogramm anzeigen , z

kompare file_r666 file

zeigt schön die Unterschiede.

Ich habe die Antwort gepostet, weil die Befehle der akzeptierten Antwort tatsächlich keine Kopie der Datei enthalten und weil svn cat -r 666 file | vimsie mit meinem System nicht funktioniert ( Vim: Error reading input, exiting...)

Rehctawrats
quelle