Podpora tokenizace pro Diff a Patch
Tokenization-aware Diff and Patch
bakalářská práce (OBHÁJENO)

Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/124778Identifikátory
SIS: 227842
Kolekce
- Kvalifikační práce [11325]
Vedoucí práce
Oponent práce
Horký, Vojtěch
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Programování a softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
11. 2. 2021
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Čeština
Známka
Dobře
Klíčová slova (česky)
editační vzdálenost|slučování patchů|textové algoritmy|kontrola verzíKlíčová slova (anglicky)
editing distance|three-way merge|text algorithms|version controlAlgoritmy 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. 1
File 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