Diff
De Guifi.net - Wiki Català
Revisió de 21:27, 13 nov 2010; Al (Discussió | contribucions)
Contingut
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.