Diff: Diferència entre les revisions

De Guifi.net - Wiki Català

(Vegeu també)
 
m (1 revisió)
 
(Cap diferència)

Revisió de 21:27, 13 nov 2010

Instal·lació

El paquet que instal·la la comanda diff, té el mateix nom que la comanda, tal i com podeu veure amb

$ which diff
/usr/bin/diff
$ dpkg -S /usr/bin/diff

Per tant per instal·lar-ho (si és que encara no ho teniu):

$ sudo apt-get install diff

Com crear un fitxer de patch amb diff

Si teniu dos fitxers, anomenats Fitxer1 i Fitxer1Modificat, podeu crear un patch (pegat) amb

$ diff -u oldFile newFile > mods.diff

Sovint als fitxers també se'ls anomena amb la extensió patch:

$ diff -u oldFile newFile > mods.patch

On:

-u  -U NUM  --unified[=NUM]
             Output NUM (default 3) lines of unified context.

Recursos:

Crear un pegat d'una carpeta i totes les subcarpetes i subfitxers

Primer cal obtenir una còpia de la carpeta original:

$ cp -R original new

Ara feu els canvis a la carpeta new i creeu un pegat amb:

$ diff -rupN original/ new/ > original.patch

On:

-r  --recursive
             Recursively compare any subdirectories found.
-u  -U NUM  --unified[=NUM]
             Output NUM (default 3) lines of unified context.

-N  --new-file
             Treat absent files as empty.


La opció -c és només per a C

-p  --show-c-function
             Show which C function each change is in.



Patch de carpetes i els seus subdirectoris

Assumint que el codi font original està a la carpeta Tb01 i el codi modificat a Tb02 i que hi han multiples fitxers i subdirectoris en ambdues carpetes:

$ diff -crB Fitxer1 Fitxer1Modificat > Fitxer1Modificat.patch

Segons el manual ([man diff]):

-B  --ignore-blank-lines
             Ignore changes whose lines are all blank.

-c  -C NUM  --context[=NUM]
             Output NUM (default 3) lines of copied context.

 -r  --recursive
             Recursively compare any subdirectories found.


Vegeu també

Enllaços externs

Eines de l'usuari