Název:
Podpora tokenizace pro Diff a Patch
Překlad názvu:
Tokenization-aware Diff and Patch
Autoři:
Antoniewicz, Arkadiusz Martin ; Kratochvíl, Miroslav (vedoucí práce) ; Horký, Vojtěch (oponent) Typ dokumentu: Bakalářské práce
Rok:
2021
Jazyk:
cze
Abstrakt: [cze][eng] Algoritmy na porovnávanie súborov a pomocné programy "diff", "patch" a "diff3" sa často používajú v programovaní za účelom porovnávania kódu a v mnohých systémoch správy verzií. Napriek užitočnosti sú výsledky týchto nástrojov striktne orientované na riadky, čo môže komplikovať spracovanie rôznych formátov textov, ako je napríklad obyčajný text, značkovací jazyk a rôzne ďalšie formáty, v ktorých nie sú zlomy riadkov významné. Táto práca popisuje a implementuje prispôsobiteľnú verziu týchto nástrojov, ktoré umožňujú používateľovi určiť ľubovoľnú tokenizáciu vstupu, čoho dôsledkom ľahké diferencovanie, opravovanie a zlučovanie zmien obsahu, ktorý nie je podporovaný tradičným programom "diff". Práca sa zaoberá novovzniknutým problémom vysporadúvania sa s bielymi znakmi. 1File comparison algorithms and utilities 'diff', 'patch' and 'diff3' are widely used in programming for the purpose of code comparison, and in many version control systems. Despite the usefulness, the differences and patches produced by the tools are strictly line-oriented, which complicates processing of differently formatted data, such as free flowing text, markup, and various other formats where line breaks are not crucial. This thesis de- scribes and implements a customizable version of these tools, which allows the user to specify an arbitrary tokenization of the input, thus allowing easy diffing, patching and change-merging of content not supported by the tradi- tional diff. Additionally, the thesis describes a newly appearing challenge of managing the whitespace in the patches, and demonstrates the functional- ity on a practical use-case that can not be performed with the current diff utilities. 1
Klíčová slova:
editační vzdálenost|slučování patchů|textové algoritmy|kontrola verzí; editing distance|three-way merge|text algorithms|version control