2010-02-01 10 views
16

Ho delle modifiche su un ramo che ho unito a trunk nella mia directory di lavoro. Svn stat mostra l'elenco corretto dei file modificati. Tuttavia, l'output "svn stat" include un "+" nella cronologia pianificata per il commit su ogni file aggiunto nuovo al ramo.svn diff quando i file sono contrassegnati con "cronologia programmata con commit"

A + src \ Main \ java \ com .... java

Quando eseguo "svn diff", i file aggiunti che hanno il "+" non sono inclusi nell'output di patch .

Questo sembra rotto. Se un file è contrassegnato come aggiunto, allora l'intero contenuto dovrebbe essere nell'output diff. Ho provato a passare la --notice-ancestry. Non è stata apportata alcuna modifica all'emissione di diff. Il più vicino possibile allo stesso problema è these comments relativo ai file copiati/spostati

Qualcuno sa come ottenere SVN per includere questi file nell'output diff?

Ho appena provato un programma diff esterno come suggerito da questa risposta questions, ma non ha funzionato per me.

risposta

11

Il carattere + nell'output di svn status indica che il file ha "Cronologia pianificata con commit". Ciò significa che il file non è in realtà un nuovo file, ma in realtà un discendente diretto di qualche altro file nel repository Subversion.

Ciò significa che ci non deve essere emesso in svn diff, poiché il file non è effettivamente cambiato. Se dovessi apportare alcune modifiche locali al file, compariranno nell'output svn diff.

+1

Ho sospettato il '+'. Tuttavia, come posso usare diff per creare un diff che includa tutte le modifiche (come visto dal trunk) per l'invio ai manutentori di un progetto? –

+0

@James: Potrebbe essere difficile fare con la cronologia, dal momento che tecnicamente una copia svn o rinomina * non può * essere rappresentata nel formato diff standard (e mantenere la cronologia). È possibile rimuovere la cronologia di quel file ('file cp file.bak; svn ripristina file; rm file; mv file.bak; svn aggiungi file') e quindi si dovrebbe avere il diff in' svn diff', ma non si mantenere la storia, il che sarebbe un peccato. Potrebbe essere necessario includere le istruzioni per eseguire la trasformazione manualmente. – Avi

17

Quando viene rilasciata la versione 1.7, lo svn diff avrà uno switch --show-copies-as-adds a tale scopo. Questa è una buona indicazione che le versioni fino alla 1.6 non hanno quell'abilità.

0

se si "svn mv fileA fileB". ci sarà + segno vicino al fileB. Penso che il segno + significhi che il contenuto del file non è stato modificato, quindi non appare in svn diff. In questo caso, è solo il nome del file è cambiato.

Problemi correlati