Aggiungo alcune modifiche al mio repository locale ed eseguo svn diff
, ma l'output diff
è vuoto. Ma svn status
ha contrassegnato i miei file come modificati. Si tratta di file esterni, come posso usare il comando diff
con questo?svn diff non mostra i file esterni modificati
risposta
Ecco un preventivo da the manual:
Oltre svn cassa, svn update, svn interruttore e svn export comandi che gestiscono effettivamente l'disgiunto sottodirectory (o scollegato) in cui vengono estratti gli esterni, il comando svn riconosce anche le definizioni esterne. Visualizza un codice di stato di X per le sottodirectory esterne disgiunte e quindi ricorre in quelle sottodirectory per visualizzare lo stato degli elementi esterni stessi. È possibile passare l'opzione --ignore-estero a uno qualsiasi di questi sottocomandi per disabilitare l'elaborazione delle definizioni esterne.
Si può dedurre da quanto sopra che solo i comandi citati supportano gli esterni.
Non so perché sia così, ma la mia impressione è che era relativamente difficile da progettare correttamente e non era in cima alla lista delle caratteristiche.
Avrete bisogno di utilizzare un programma esterno per farlo. Ho scritto questo script che sembra fare bene il lavoro.
<?php
passthru('svn diff');
exec('svn propget svn:externals',$externals);
foreach($externals as $line) {
list($local, $path) = explode(' ',$line);
passthru('svn diff '.$local);
}
?>
Questo è logico perché la ragione è che lo stato svn mostra lo stato rispetto alla ultima revisione del tronco. significa che il tuo locale non è aggiornato all'ultima revisione sul trunk. Prendendo le informazioni svn si vedrebbe che la
Path: /home/....
Working Copy Root Path: /home/trunk
URL: https://svn.***.**/trunk
Repository Root: https://svn.***.**/
Repository UUID:
Revision: **LAST_UPDATED_REVISION_Nr**
Tuttavia, il svn diff mostra la differenza tra il vostro file locale e la situazione di file nel LAST_UPDATED_REVISION_Nr. Per vedere la differenza rispetto alla ultima revisione sul tronco:
svn diff -rHEAD address_of_your_file
È possibile utilizzare questo guscio one-liner:
svn st -q | grep '^[AM]' | cut -c9- | xargs svn diff
Spiegazione:
svn st -q
prende l'uscita di stato SVN senza righe aggiuntive ("quiet").grep '^[AM]'
filtri aggiunti e file modificati.cut -c9-
taglia i metadati e passa oltre i percorsi.xargs svn diff
eseguesvn diff
per ogni file.
- 1. Egit mostra tutti i file come modificati
- 2. CVS Diff per emettere solo i file modificati?
- 3. Come esportare i file modificati tra due revisioni SVN
- 4. Git che mostra file identici come modificati
- 5. Mercurial mostra i file come modificati in modo errato
- 6. Non mostrare svn: esterni in stato svn
- 7. Confrontando 2 revisioni con svn diff (v 1.3.2) e ottieni solo i percorsi modificati?
- 8. Come rendere svn diff mostra le modifiche remote?
- 9. SVN mostra i file nella directory di lavoro non aggiornati
- 10. Lo stato git mostra file di tracciati non modificati/non modificati?
- 11. Come ottenere l'elenco dei file modificati in SharpSVN (come svn diff --summarize --xml)
- 12. git diff non mostra abbastanza
- 13. git: mostra tutti i file modificati tra due commit
- 14. Come escludere determinati file da un svn diff?
- 15. svn diff quando i file sono contrassegnati con "cronologia programmata con commit"
- 16. Uso del comando svn diff
- 17. Ottieni i file modificati dalla riga di comando SVN tra due revisioni
- 18. Ottenere i file modificati dalla riga di comando svn tra due date
- 19. Come iniziare con svn: esterni?
- 20. git che contrassegna i file non modificati come modificato
- 21. git: Perché git diff non mostra differenze?
- 22. Github commettere, diff non mostra variazioni
- 23. SVN che non ignora i file
- 24. Come fare svn interno: esterni
- 25. Mercurial: elenca i file "hg diff"
- 26. Checkouts sparse e svn: esterni
- 27. Git aggiungi solo tutti i nuovi file, non i file modificati
- 28. hg mostra i file modificati che sono invariati, perché potrebbe essere?
- 29. Cosa significa "@@ ... @@" con i segni in svn diff o git diff?
- 30. Come elencare tutti i file modificati in un volume shadow?