Original title:
Podpora tokenizace pro Diff a Patch
Translated title:
Tokenization-aware Diff and Patch
Authors:
Antoniewicz, Arkadiusz Martin ; Kratochvíl, Miroslav (advisor) ; Horký, Vojtěch (referee) Document type: Bachelor's theses
Year:
2020
Language:
cze Abstract:
[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
Keywords:
editing distance; text algorithms; three-way merge; version control; editační vzdálenost; kontrola verzí; slučování patchů; textové algoritmy
Institution: Charles University Faculties (theses)
(web)
Document availability information: Available in the Charles University Digital Repository. Original record: http://hdl.handle.net/20.500.11956/120978