Usa svn patch
.
Caso 1:utilizzo di /usr/bin/patch
:
svn diff > $TMPDIR/mypatchfile.patch
cd myOtherCheckOut
patch -p0 < $TMPDIR/mypatchfile.patch
Applica correttamente le modifiche se non ci sono file aggiunti/eliminati tramite svn add
o svn delete
Caso 2:utilizzo di svn patch
:
svn diff > $TMPDIR/mypatchfile.patch
cd myOtherCheckOut
svn patch $TMPDIR/mypatchfile.patch
Tiene traccia anche dei file aggiunti ed eliminati.
Nota che nessuno dei due tiene traccia di svn move
se rename
s
Per impostazione predefinita, patch
ignora la parte della directory del nome file di destinazione; sta solo cercando "httpd.conf" nella tua attuale directory di lavoro. Se vuoi che utilizzi il percorso completo, devi chiedergli esplicitamente di farlo con -p
opzione:
patch -p 0 < httpd.patch
Il numero dopo -p
è quanti livelli rimuovere dal percorso del nome del file; -p N
elimina tutto fino alla barra numero N inclusa. La prima barra è il numero 1, quindi -p 0
significa "non spogliare nulla".
In generale, tuttavia, potrebbe essere meglio non fare affidamento sull'avere il percorso completo nel file di patch; la patch sarà più generalmente utile se funziona anche per i file in un diverso layout di directory. Puoi sempre cd nella directory contenente il file prima di eseguire patch (e utilizzare un percorso completo per trovare il file patch stesso, se necessario, invece).