mozilla
Your Search Results

    Jak vytvořit patch

     

    Poté, co jste získali zdrojový kód, provedli v něm úpravy, zkompilovali jej a otestovali, nejspíše chcete vaše změny nechat prověřit a zařadit. Abyste toho dosáhli, je nutné vytvořit soubor, obsahující změny, které jste provedli - takovému souboru se říká záplata (angl. patch) nebo také diff soubor, který vytvoříte pomocí příkazu cvs diff.

    Diff jediného souboru

    Pro porovnání jediného místního souboru s daným souborem v repozitáři, použijte příkaz:

    $ cvs diff -u8p JMÉNO_SOUBORU
    

    Výsledný diff je v tzv. 'unifikovaném' formátu (-u) s 8 řádky kontextu a vypíše se na standardní výstup. Přejete-li si místo toho diff uložit do nějakého souboru, použijte příkaz:

    $ cvs diff -u8p JMÉNO_SOUBORU > VÝSTUPNÍ_SOUBOR
    

    Diff více souborů

    Pokud jako JMÉNO_SOUBORU určíte namísto běžného souboru adresář, bude tento rekurzivně prohledán. Například

    $ cvs diff -u8p . > VÝSTUPNÍ_SOUBOR
    

    porovná všechny soubory v aktuálním adresáři a všech jeho podadresářích s jejich ekvivalenty v repozitáři a za použití 8 řádek kontextu zapíše souhrnný unifikovaný diff do výstupního souboru jménem VÝSTUPNÍ_SOUBOR.

    Takový soubor by měl obsahovat dostatek kontextu, aby mu bylo možné porozumět, aniž by bylo nutné otevírat samotné zdrojové soubory. Doporučovaný kontext je 8 řádků, ale není vyloučeno, že v některých případech je pro pochopení zapotřebí více kontextu. Mějte také na paměti, že čím více řádků kontextu dodáte, tím větší je šance, že vaše záplata půjde aplikovat také na soubory, které se od těch, proti kterým jste ji tvořili, významně liší.

    Zařazení nových souborů do diffu

    Potřebujete-li do své záplaty zařadit některé nové soubory, použijte parametr -N:

    $ cvs diff -u8pN . > VÝSTUPNÍ_SOUBOR
    

    Problém spočívá v tom, že cvs diff zařadí pouze ty nové soubory, které byly do repozitáře přidány za pomoci příkazu cvs add, a to vyžaduje práva pro zápis do repozitáře.

    Řešením je nástroj cvsdo, který upraví CVS/Entries tak, že cvs chápe nové soubory jako již přidané:

    $ cvsdo add NOVÝ_SOUBOR
    $ cvs diff -u8pN NOVÝ_SOUBOR > VÝSTUPNÍ_SOUBOR
    

    Mějte na paměti, že tento trik nefunguje v případě nových adresářů; pro ty musí cvs add upravit repozitář okamžitě a k tomu jsou zapotřebí práva pro zápis.

    Document Tags and Contributors

    Tags: 
    Contributors to this page: JasnaPaka, Triceo, fscholz, Pawell
    Last updated by: fscholz,