Come si confronta un ramo con un altro? Voglio confrontare un ramo con l'ultima revisione nel bagagliaio.Ramo SVN confronta
risposta
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 .
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
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
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
Here's the documentation per il comando svn diff
.
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.
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.
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.
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)
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".
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
Stenografia -> 'svn diff ^/trunk ^/branches/B' – cchamberlain