2009-11-24 4 views

risposta

56

Si potrebbe iniziare con:

svn diff http://REPOS/trunk http://REPOS/branches/B 

(. Dove http://REPOS è il vostro percorso del repository compresi i genitori di trunk e branches)

Questo stamperà una grande quantità di testo, incluse tutte le modifiche testuali ma non le modifiche binarie tranne per dire dove e quando si sono verificati .

+12

Grazie! La tua risposta mi ha portato a questo http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-diff.html che spiega come fare lo stesso con TortoiseSVN – tukushan

+0

Stenografia -> 'svn diff ^/trunk ^/branches/B' – cchamberlain

0

Ecco un post from Murray Cumming che descrive il processo non ovvio:

  • Scoprite i numeri di revisione: È necessario conoscere i numeri di revisione delle ultime versioni di ciascuno dei comparti. Sembra che svn log sia l'unico modo per farlo.
  • cd in una delle diramazioni di diramazione, come ad es.
  • alimentazione i numeri di revisione del comando svn diff: svn diff -r123:145
+1

Questo non ti dirà cosa è cambiato in 'trunk' dall'ultimo commit al branch? Mi scuso se mi manca qualcosa - si sta facendo tardi qui ... – SimonJ

+0

Non è necessario cercare il numero di revisione più recente in ogni ramo: basta usare 'HEAD'. Ma questo non era ciò che l'OP chiedeva: voleva confrontare il suo ramo e il suo tronco, non tra due revisioni nello stesso ramo. – Ether

1

Grazie per le informazioni ragazzi, vorrei aggiungere qualcosa per migliorare la leggibilità dei risultati diff. Se hai usato: svn diff svn: // url: 9090/branches/PRD_0002 svn: // url: 9090/branches/TST_0003> svn_diff_filename.txt

È possibile utilizzare: findstr "Indice:" C: \ percorso \ svn_diff_filename.txt> svn_diff_file_list.txt

che vi porterà un elenco leggibile di file che hanno le eventuali differenze.

4

Di solito controllo i due rami (o il ramo e il tronco) in directory. Quindi uso uno strumento grafico come Kompare o simile (a seconda delle preferenze, del sistema operativo, ...). Questo è davvero utile per me quando ho bisogno di eseguire unioni complesse.

0

Per diff tra due revisioni di un ramo:

svn diff -r rLATEST:rOLD 

Usa svn log per ottenere le diverse revisioni. L'uso può limitare il numero di revisioni nel registro utilizzando svn log -l 5. verranno mostrate solo le ultime 5 revisioni.

12

Se siete solo in cerca di alto livello di quali file sono diverse e non si vogliono vedere tutti i contenuti, utilizzare:

svn diff ^/trunk ^/branches/dev --summarize

(Ciò a fronte del tronco e ramo dev)

2

Poiché la mancanza di reputazione non mi consente di aggiungere questo come commento contro una risposta esistente, devo aggiungerlo come separato.

Un'opzione utile per svn diff per me era --ignore-properties. I miei due rami avevano finito con lo stesso codice, ma con storie di fusione diverse.

L'utilizzo di --ignore-properties mi ha permesso di provare a me stesso che questo era il caso, senza guastare la grande quantità di modifiche alle proprietà "svn: mergeinfo".