Munka foltok - linux

Munka tapaszok

A világ a Linux széles körben használják pár programozás diff és patch. diff létrehoz egy fájlt, amely rögzíti a különbség a két fájlokat vagy könyvtárakat 2 (az úgynevezett folt), és patch lehetővé teszi, hogy „elő” a javítást, azaz patch, és az egyik a két fájl (könyvtárak), kap egy másik. A fő alkalmazási ilyen program - létrehozása, terjesztése és alkalmazása foltok a forrás programokat. Például, találtam egy hibát az egymást Program és miután megvizsgálta a forráskód rájött, hogy a hiba kijavításához szükséges hozzá 2 sor, és egy másik, hogy a változás néhány karaktert. Azt akarom, hogy tájékoztassa a fejlesztő róla, de hogyan mondja el a kívánt módosításokat? Meg tudod csinálni a köznyelv, de ez sokkal jobb (és kényelmesebb mindkettőnknek), hogy egy folt, és küldje el a fejlesztő.

Vagy egy másik példa. A Linux kernel, csomagolva .tar.bz2, súlya több mint 30 MB, függetlenül annak változata. De a fájl egyes verziók közötti különbségek 2.6.6 és 2.6.7 csomagolva .bz2létrehozás, súlya mindössze 3 Mb, így, hogy a kernel forrást 2.6.7 kernel forrás 2.6.6 csak 3 MB elég letölteni, nem szivattyúzás minden 32 MB újra.

Azonban gyakran csak meg kell látni a különbséget 2 közel azonos fájlokat, és ez is kényelmes a használata diff, az eredményt megjeleníteni munkája nem a fájlt, és jobbra a képernyőn.

És most nézd meg a munkát ezen eszközök a gyakorlatban. Vegyünk bármilyen szöveges fájlt, és másolatot készíteni, majd szerkessze a másolatot - 1-2 vonalak, eltávolítani, hozzáadni semmit, csak egy pár sort változtatni. Ezután futtassa a diff oldfile újfájl. Szerezd meg a fájlt különbségek közös formátumban. Ez meg csak a megváltozott, és változtassuk a szimbólumok jelölt <и> (Jelezve, hogy a megfelelő sor tartozik a bal vagy a jobb fájlt a parancssorból). Ez a formátum csak akkor alkalmasak a tanulmány az emberi kis különbség a két fájlt. Foltok létrehozásához használt más kimeneti formátumot kérték további lehetőségeket, a kimenet a diff patch fájlt továbbítjuk a standard shell segítségével.

Add a vonal hívás gombot diff -u. Most a program kimenete lesz a patch egységes formátum, amelyet a legtöbb esetben (van is egy kontextuális formátumú beleértve a kulcsfontosságú -c, de használjuk, sokkal ritkábban). Ebben a tapasz tartalmazza, és több szomszédos változatlan vonal (az úgynevezett keretében), hogy segítsen patch a programot, hogy megtalálja a helyét a fájlt, ahol a változás. Hozzá a 2. fájl jelölt vonal előnyeit törölve - bínját. Ha a karakterlánc megváltozik, úgy tűnik, 2-szer - a régi verziót és az új-mínusz egy plusz. Ezen túlmenően, az elején a fejlécet adnak, amelyek magukban foglalják a nevét és a dátumot a változás mindkét fájlokat.

diff lehetővé teszi, hogy a különbség a két könyvtárat. Ezt jellemzően használják, hogy egy általános tapaszt a teljes forrásfát a program, ha ez többször módosult fájlokat. Ez használ kulcsokat -urN, és a nevét két könyvtár (régi és módosított) vannak feltüntetve, hanem a 2 kép. Ebben az esetben helyesen kezelte a helyzetet a létrehozott / törölt fájlokat (fájlok, amelyek nem az egyik könyvtárak fontolgatta meglévő és üres).

Ahhoz, hogy a tapaszt, akkor kell menni a könyvtárba, ahol a régi fájl / könyvtár és futtassa a parancsot

Ha tapaszok könyvtárak általában erre: egy patch jön létre, a fent leírtak szerint (miközben címe patch egyes fájlokat az utat neki, hogy kezdeni egy új könyvtár neve), és alkalmazta a változó katalógusban. Ezután a csapat fog kinézni:

patch -p1 <файл_патча

Itt -p1 azt jelenti, hogy a cím a tapasz eltávolításához szükséges home könyvtár. Meg fogom magyarázni mindezt egy példát. Van egy 2.6.0 kernel forrás. Ez az a könyvtár linux-2.6.0, amely tartalmazza a járművezetők könyvtár, boltív, stb És van egy patch verzió 2.6.1, amely magában foglalja az ilyen címek:

Lásd, hogy amikor létrehoz egy patch a régi és az új könyvtárat nevezzük, illetve b. Mi ugyanazt a könyvtár más, és a javítás nem tud tenni semmit. Ezért megyünk linux-2.6.0 könyvtárba, és futtassa a parancsot a fent felsorolt. Most a hírek fogják értelmezni,

és a tapasz követni fogja normális.

Kapcsolódó cikkek