Come posso visualizzare una versione precedente di un file SVN?


156

Ho un file SVN che ora manca di logica e quindi ho bisogno di tornare indietro di circa 40 revisioni al tempo in cui aveva la logica di cui avevo bisogno. Oltre a provare a visualizzare un diff del file nella riga di comando ( molto difficile da leggere ), c'è un modo per ottenere una copia di quel file da rivedere in modo da poterlo studiare per recuperare parti?

Risposte:


237

Puoi aggiornare a una versione precedente:

svn update -r 666 file

Oppure puoi semplicemente visualizzare il file direttamente:

svn cat -r 666 file | less

13
svn cat -r 666 file | lessè perfetto per poterlo leggere con Vim!
Xeoncross,

4
@sillyMunky Try svn cat | vim -. Se l'evidenziazione della sintassi di vim non si avvia automaticamente, fallo :set syntax=java(o in qualsiasi lingua).
John Kugelman,

1
Grazie mille John, in realtà sono su Debian e ho scoperto che c'è un bel pacchetto di evidenziazione della sintassi chiamato 'source-highlight', quindi meno posso automaticamente evidenziare la sintassi (in realtà ora lo alias a meno per distinzione).
sillyMunky,

2
svn cat -r 666 file> file_666.js se si desidera visualizzare l'intero file: p
Parijat Kalia

o se stai usando bash vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )
h4unt3r il

5

È anche interessante confrontare il file dell'attuale revisione funzionante con lo stesso file di un'altra revisione.

Puoi fare come segue:

$ svn diff -r34 file

2

Aggiornamento a una revisione specifica:

svn up -r1234 file

1

Credo che il modo migliore per visualizzare le revisioni sia utilizzare un programma / un'app che ti renda facile. Mi piace usare trac: http://trac.edgewall.org/wiki/TracSubversion

Fornisce un ottimo browser svn e rende davvero facile tornare indietro attraverso le tue revisioni.

Potrebbe essere un po 'eccessivo configurarlo per una revisione specifica che si desidera verificare, ma potrebbe essere utile se lo si farà molto in futuro.


1

Utilizzando le ultime versioni di Subclipse , puoi effettivamente visualizzarle senza utilizzare il prompt cmd. Sul file, fai semplicemente clic con il pulsante destro del mouse => Team => Passa a un altro ramo / tag / revisione. Oltre al campo di revisione, fai clic su Seleziona e vedrai tutte le versioni di quel file.


1

Per rispondere direttamente alla domanda su come "ottenere una copia di quel file":

svn cat -r 666 file > file_r666

quindi è possibile visualizzare il nuovo creato file_r666con qualsiasi visualizzatore o programma di confronto, ad es

kompare file_r666 file

mostra bene le differenze.

Ho pubblicato la risposta perché i comandi della risposta accettata in realtà non danno una copia del file e perché svn cat -r 666 file | vimnon funziona con il mio sistema ( Vim: Error reading input, exiting...)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.