Vizuálne porovnanie textov (Diff) - Programy pre bežného smrteľníka, časť I.

Toto je prvý z plánovanej série článkov na tému nástrojov, ktoré vám môžu uľahčiť život alebo aspoň bežnú prácu s PC. Neutekajte, aj ak ho používate iba na “obyčajné” veci – prácu s textom, dokumentami, obrázkami. Mierená je práve na “netechnických” ľudí s bežnými znalosťami. Nejde mi o propagáciu žiadneho konkrétneho softwaru, takže všade, kde sa bude dať, budem hovoriť skôr o princípoch než programoch a doplním konkrétne odporúčania.

Nesnažím sa z vás urobiť odborníkov na žiadnu zo spomínaných tém. Väčšina vyžaduje aspoň trochu praktickej skúsenosti. Hlavným cieľom je pomôcť ľuďom, ktorí majú záujem sa zlepšovať (a vo výsledku si zjednodušiť prácu), uvedomiť si, že existujú jednoduché pomôcky. Ak sa niekedy stretnete s problémom a napadne vám “tuším som kedysi čítal(a) niečo, čo by mohlo pomôcť tento problém vyriešiť,” článok splnil účel.

Dnešná téma je:

Vizuálne zobrazenie rozdielov v texte (Diff)

Na úvod elegantné riešenie častého problému: hľadanie rozdielov medzi dvoma súbormi s textom. Niekto vám poslal pripomienkovanú verziu zmluvy? Prišiel mailom súbor a chcete zistiť, či sa zmenil jeho obsah? Niekto neznalý nezapol “sledovanie zmien” vo Worde? Ak potrebujete skontrolovať, či sa v revidovanej verzii zmluvy zmenilo všetko, čo sa zmeniť malo, ale chcete sa uistiť, že sa nezmenilo nič iné, ako na to? Manuálne porovnanie každého písmenka by bolo na zbláznenie.

Preto použijeme diff nástroj. Naľavo vložíme jednu verziu textu, napravo druhú a “porovnáme.”

Wordpress diff

Výsledok je ľahko čitateľný. Text, ktorý je biely, je nezmenený; zmeny sú označené farebne. Obrázok hore je z WordPressu, na ktorom beží tento blog. Poznať ho môžete tiež z wiki (príklad) alebo Wordu.

Nuž, to je v podstate všetko. Nič viac netreba vedieť. Programov, ktoré niečo takéto robia, je veľa; jeden známy, celkom dobrý a dostupný zadarmo je WinMerge, ktorý používam aj v nasledujúcich screenshotoch. Ovláda sa ľahko – stačí ho spustiť a nakopírovať do neho text, prípadne otvoriť textové súbory a dať porovnať (najlepšie stlačením F5).

Stručne spomeniem ešte aj iné možnosti použitia.

Zlúčenie a trojcestné zlučovanie (merge, three-way merge)

Ak chcem niekoho poprosiť o pripomienkovanie tohto krátkeho článku, stačí, ak ho pošlem mailom s prosbou o písanie pripomienok priamo do textu. Pomocou diff si ich potom ľahko nájdem.

Len tak na okraj: mnohí ľudia nevedia o tejto možnosti (však preto píšem tento článok) a automaticky predpokladajú, že ich prosím o pripomienky do textu, ktoré potom nebudem schopný nájsť. Niekedy to dopadne takto 🙂
Pre každý prípad :)

Merge (zlúčenie) je potom funkcia, ktorá umožní zmeny z jedného súboru preniesť do druhého. Ak mi niekto opravil chybu v článku, diff mi nájde zmenu, ktorú potom môžem pomocou pravého kliku (alebo klávesovou skratkou) zlúčiť do môjho textu. Žiadne ručné kopírovanie či prepisovanie nie je nutné.

Ak by mi dvaja ľudia poslali svoje pripomienky naraz, možno ich budem chcieť naraz zlučovať do výsledku, a používať pri tom pôvodnú verziu textu ako referenciu. Na toto slúži three-way merge. Pre väčšinu ľudí ale niečo takéto nebude nutné.

Diff/merge adresárov (directory diff/merge)

Posledná funkcia, o ktorej sa chcem zmieniť, umožňuje porovnanie obsahu adresárov na disku. To sa hodí napríklad, ak máme na viacerých miestach nakopírované dokumenty alebo fotky a potrebujeme zistiť, či sú všetky rovnaké alebo boli niektoré z nich zmenené. Teda je to užitočné aj pri upratovaní. 🙂 (Aj keď, ak by som to mal robiť napríklad nad celou databázou fotografií, použil by som niečo sofistikovanejšie – takto by to bolo prácne.)

Ukážka z WinMerge znázorňuje rôzne prípady, ktoré môžu nastať: povie mi, ktoré súbory sú rovnaké, ktoré sa líšia, ktoré chýbajú alebo sú naviac.

Porovnanie adresárov

To je na dnes všetko. Hlavná myšlienka dňa: nájdenie rozdielov a zmien v texte je triviálne a zaberie len pár sekúnd.