Файлдарды салыстыру құралы: Diff туралы мәліметтер
Diff
Файлдарды салыстыру құралы: diff утилитасы туралы толық ақпарат. Екі файл арасындағы өзгерістерді анықтап, түзетуге көмектеседі. UNIX жүйесінде кең қолданылады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Файлдарды салыстыруға арналған стандартты UNIX құралы
Standard UNIX utility for file comparison
Информатикада diff құралы – файлдардың мазмұны арасындағы айырмашылықтарды есептеп, көрсететін деректерді салыстыру құралы болып табылады. Басқа мақсаттарда қолданылатын өңдеу арақашықтығы ұғымдарынан айырмашылығы, diff символдарға емес, жолдарға бағдарланған, бірақ ол Левенштейн арақашықтығы сияқты, бір файлды екіншісінен жасау үшін ең аз мөлшерде жою және қосу қадамдарын анықтауға тырысады. Құрал өзгерістерді бірнеше стандартты форматтардың бірінде көрсетеді, соның арқасында адамдар да, компьютерлер де өзгерістерді талдап, оларды түзетулер жасау үшін пайдалана алады. Әдетте diff бір файлдың екі нұсқасы арасындағы өзгерістерді көрсету үшін қолданылады. Заманауи нұсқалары бинарлық файлдарды да қолдайды. Нәтиже "diff" немесе "жөндеу" деп аталады, себебі нәтижені Unix бағдарламасымен қолдануға болады. Осыған ұқсас файлдарды салыстыру құралдарының нәтижесі де "diff" деп аталады; "grep" сөзін іздеу әрекетін сипаттау үшін қолдану сияқты, diff сөзі деректердің айырмашылықтарын есептеу және оның нәтижелері үшін қолданылатын жалпы терминге айналды. POSIX стандарты "diff" және "patch" құралдарының қызметін және олардың файл форматтарын анықтайды.
In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line oriented rather than character oriented, but it is like Levenshtein distance in that it tries to determine the smallest set of deletions and insertions to create one file from the other. The utility displays the changes in one of several standard formats, such that both humans or computers can parse the changes, and use them for patching. Typically, diff is used to show the changes between two versions of the same file. Modern implementations also support binary files. The output is called a "diff", or a patch, since the output can be applied with the Unix program The output of similar file comparison utilities is also called a "diff"; like the use of the word "grep" for describing the act of searching, the word diff became a generic term for calculating data difference and the results thereof. The POSIX standard specifies the behavior of the "diff" and "patch" utilities and their file formats.
Алгоритм
The операциясы ең ұзын ортақ тізбек мәселесін шешуге негізделген. Дегенмен, кейбір diff құралдары жылжытылған жолдарды көрсетіп береді.
The operation of is based on solving the longest common subsequence problem. However, some diff tools highlight moved lines.
Іске асыру және оған байланысты бағдарламалар
1975 жылдан бері негізгі алгоритмге жақсартулар енгізілді, командаға пайдалы мүмкіндіктер қосылды және жаңа шығыс форматтары жасалды. Негізгі алгоритм Юджин У. Майерстің «An O(ND) Difference Algorithm and its Variations» және Вебб Миллер мен Майерстің «A File Comparison Program» атты мақалаларында сипатталған. Алгоритм Еско Укконеннің «Шамамен тізбектерге сәйкес келу алгоритмдері» еңбегінде тәуелсіз түрде ашылып, сипатталған. Diff бағдарламасының алғашқы нұсқалары мәтін файлдарының жолдарын салыстыру үшін жол соңындағы символдарды жолдарды бөліп көрсетуге бағытталған. 1980 жылдары бинарлық файлдарды қолдау бағдарламаның дизайны мен іске асырылуына өзгерістер енгізді. GNU diff және diff3 басқа diff және patch құралдарымен бірге diffutils жинағында бар.
Changes since 1975 include improvements to the core algorithm, the addition of useful features to the command, and the design of new output formats. The basic algorithm is described in the papers An O(ND) Difference Algorithm and its Variations by Eugene W. Myers
and in A File Comparison Program by Webb Miller and Myers. The algorithm was independently discovered and described in Algorithms for Approximate String Matching, by Esko Ukkonen. The first editions of the diff program were designed for line comparisons of text files expecting the newline character to delimit lines. By the 1980s, support for binary files resulted in a shift in the application's design and implementation. GNU diff and diff3 are included in the diffutils package with other diff and patch related utilities.
Форматтаушылар мен алдыңғы-соңғы құрылғылар
Sdiff және diffmk постөңдеушілері өзгерістерді қатар көрсетеді және тиісінше басып шығарылған құжаттарға өзгерту белгілерін қояды. Екеуі де 1981 жылға дейін немесе сол жылы Bell Labs-те жасалған. Diff3 бір файлды екі басқа файлпен салыстырып, екі айырмашылықты үйлестіреді. Ол бастапқыда Пол Дженсен тарапынан ортақ кодты өңдеген екі адамның өзгерістерін біріктіру үшін ойластырылған. Бұл сондай-ақ өзгертулерді біріктіру үшін RCS сияқты нұсқауды бақылау жүйелерінде қолданылады. Emacs жаңарту файлдарын интерактивті өңдеу және біріктіру мүмкіндіктерін ұсынатын интерфейсте жаңартудың қамтитын өзгерістерді көрсету үшін Ediff-ке ие. Vim екіден сегізге дейін файлдарды vimdiff арқылы салыстырады, ал айырмашылықтар түспен белгіленеді. Тарихи тұрғыдан diff бағдарламасын шақыру арқылы жұмыс істеген, қазіргі vim xdiff кітапханасының (LibXDiff) git нұсқасын пайдаланады, бұл жылдамдық пен мүмкіндіктерді жақсартады. GNU Wdiff – бұл diff-тің интерфейсі, ол мәтіндік құжаттардағы өзгерген сөздерді немесе сөз тіркестерін көрсетеді, тіпті жолдар оралғанда немесе баған ені әртүрлі болғанда да. colordiff – бұл 'diff' үшін Perl қаптамасы, ол бірдей нәтижені шығарады, бірақ қосылған және жойылған бөліктерді түспен көрсетеді. diff so fancy және diff highlight – жаңа аналогтар. "Delta" – өзгерістерді және кодты бір уақытта көрсететін Rust-та жазылған бағдарлама. Patchutils құралдары контексттік және біріктірілген айырмашылықтарды біріктіруге, қайта реттеуге, салыстыруға және түзетуге мүмкіндік береді.
Postprocessors sdiff and diffmk render side by side diff listings and applied change marks to printed documents, respectively. Both were developed elsewhere in Bell Labs in or before 1981. Diff3 compares one file against two other files by reconciling two diffs. It was originally conceived by Paul Jensen to reconcile changes made by two people editing a common source. It is also used by revision control systems, e. g. RCS, for merging. Emacs has Ediff for showing the changes a patch would provide in a user interface that combines interactive editing and merging capabilities for patch files. Vim provides vimdiff to compare from two to eight files, with differences highlighted in color. While historically invoking the diff program, modern vim uses git's fork of xdiff library (LibXDiff) code, providing improved speed and functionality. GNU Wdiff is a front end to diff that shows the words or phrases that changed in a text document of written language even in the presence of word wrapping or different column widths. colordiff is a Perl wrapper for 'diff' and produces the same output but with colorization for added and deleted bits. diff so fancy and diff highlight are newer analogues. "delta" is a Rust rewrite that highlights changes and the underlying code at the same time. Patchutils contains tools that combine, rearrange, compare and fix context diffs and unified diffs.