2013-02-22 12 views
52

È possibile creare una patch (file diff) per tutti i file che sono stati interessati durante un commit DOPO il commit? Questi file avrebbero lo stesso numero di versione e ho bisogno del diff di ogni file dalla loro versione precedente.SVN crea una patch dal codice di commit?

risposta

48

Se si conosce il numero di commit, quindi utilizzare

svn diff -c N path 

Dove N è commettere numero e path è percorso alla vostra copia di lavoro.

+1

Ho fatto 'svn help diff' e mi ha parlato di' svn diff --old = OLD-URL [@OLDREV] - -new = NEW-URL [@NEWREV] 'che può anche confrontare due revisioni. –

35

Se si conoscono i numeri di revisione (ad esempio, 123 e 124) è possibile utilizzare:

svn diff -r123:124 path/to/my_project_folder > ~/my_project_changes_123_124.patch 

Vedi anche https://stackoverflow.com/a/25283101/1127583

+5

+1 per l'output reindirizzare al file – Luis

31

alternativa, quando si utilizza windows + TortoiseSVN: Vai alla directory sorgente, clic destro su la directory (per aprire il menu contestuale tartaruga) e selezionare "Mostra registro", selezionare entrambe le revisioni (ctrl-clic) e quindi fare clic con il tasto destro e selezionare "Mostra differenze come differenza unificata" dal menu di scelta rapida. Apparirà una finestra che mostra le differenze, che è possibile salvare come patch.

Aggiornamento: tenendo premuto MAIUSC, quando si fa clic su "mostra differenze come differenza unificata" si apre una finestra di dialogo in cui è possibile selezionare le opzioni di diff (ignorare le modifiche eol, ignorare le modifiche degli spazi bianchi, ignorare tutti gli spazi bianchi). Questo è utile se ad es. le terminazioni di riga sono cambiate tra le versioni (l'intero file sarebbe altrimenti visualizzato come 'modificato')