Mətn Fərqi

Oflayn işləyirHeç nə yüklənmirPulsuz, qeydiyyatsız

İki mətni müqayisə edin və hər dəyişən sətri, içindəki dəyişən sözlər işıqlandırılmış halda görün. Hər iki tərəf üçün sətir nömrələri, sondakı boşluqları saymamaq açarı və istənilən ölçüdə dəqiq nəticə — tamamilə brauzerinizdə: müqavilə və kod maşınınızdan çıxmır.

Nəticəni oxumaq

Nəticə vahid görünüşdür: dəyişməyən sətirlər hər iki nömrəni daşıyır, silinənlər −, əlavə olunanlar + işarəsi ilə gəlir. Bir sətir o birinə redaktə olunubsa, cüt birlikdə göstərilir və fərqlənən sözlər hərəsinin içində işıqlandırılır — sətir səviyyəsi harada dəyişdiyini, söz səviyyəsi nəyin dəyişdiyini deyir.

«Ən qısa redaktə skripti» nə qazandırır

Sadəlövh müqayisə mətnləri yuxarıdan düzüb ilk əlavədən sonrakı hər şeyi «dəyişib» adlandırır. Myers alqoritmi isə minimal redaktə dəstini tapır: yuxarıya bir abzas əlavə etmək məhz bir əlavə blok kimi görünür, qalanı düz və sakit qalır. Diff-i oxunaqlı edən bu minimallıqdır; eyni alqoritmin git-in içində işləməsinin səbəbi də budur — çıxışını da bu səhifə ilə eyni cür tərtib edir.

Görünməz fərq tələsi

Klassik sual — «alət bu sətirlər fərqlidir deyir, amma eyni görünürlər» — demək olar həmişə boşluqdur: sondakı boşluq, boşluq kimi görünən tab, ya redaktordan gəlmiş qırılmaz boşluq. Sondakı boşluq açarı adi halı həll edir. Sətirlər yenə görünməz fərqlənirsə, söz səviyyəli işıq fərqi konkret tokenə qədər daraldır — azmış simvolu tapmağa adətən bu bəs edir.

Hər şey brauzerinizdə yerli işləyir; müqayisənin heç bir tərəfi heç yerə göndərilmir.

Tez-tez verilən suallar

Müqayisə necə işləyir?

Myers diff alqoritmi ilə — git-in içindəki ilə eyni. Bir mətni o birinə çevirən ən qısa sətir əlavəetmə/silmə ardıcıllığını tapır; ona görə dəyişməyən bloklar, üstlərinə material əlavə olunanda belə, düz qalır. Hər dəyişən sətir cütü üçün ikinci keçid söz səviyyəsində sətrin içində nəyin tərpəndiyini işarələyir.

Diff-in tam olması zəmanətlidirmi?

Bəli, və bu ümid yox, test olunan invariantdır: nəticənin dəyişməyən və silinən sətirlərini oxumaq orijinal mətni, dəyişməyən və əlavə olunan sətirləri oxumaq yenisini dəqiq bərpa edir. Sətri sakitcə atan diff heç diff olmamaqdan pisdir — insanlar göstərilənə əsasən hərəkət edir.

Eyni görünən sətirlərdə niyə fərq görürəm?

Demək olar həmişə görünməz simvollar: sondakı boşluq, tab-la boşluqların fərqi, ya da mətn redaktorundan gəlmiş qırılmaz boşluq. Ən adi halı «Sondakı boşluqları sayma» açarı susdurur. Sətir əvvəlindəki abzas qəsdən heç vaxt nəzərə alınmamazlıq edilmir — kodda və strukturlu mətndə abzas mənadır.

Mətnim hara yüklənir?

Heç yerə. Müqayisə tamamilə brauzerinizdə gedir — serverə heç nə göndərilmir və məsələ də elə budur: diff olunan mətnlər müqavilələr, kod və qaralamalardır — məhz səyahət etməməli şeylər. Səhifəni açıb şəbəkədən ayrıla bilərsiniz, alət işləməyə davam edəcək.

Nə boyda mətni götürür?

Adi sənədlər və mənbə faylları — minlərlə sətir — ani müqayisə olunur, çünki alqoritmin xərci mətnin yox, fərqin ölçüsü ilə böyüyür. İyirmi min fərqli sətirdən sonra alət səhifəni asmaq əvəzinə bütöv bloku «əvəz olunub» kimi işarələməyə keçir; nəticə yenə etibarlı, tam redaktə skriptidir.

İki faylı müqayisə edə bilərəmmi?

Hər faylı istənilən redaktorda açıb məzmununu bir tərəfə yapışdırın. İkilik formatlar üçün — Word sənədləri, PDF-lər — çıxarılmış mətni yapışdırın; ikilik faylların bayt səviyyəsində müqayisəsi başqa işdir və oradakı adi suala — iki fayl eynidirmi — yoxlama məbləği cavab verir (heş generatoruna baxın).

Oxşar alətlər