இரண்டு உரைகளை ஒப்பிடும் கருவி – வேறுபாடுகளைக் காட்டும்
இரண்டு உரைகளை ஒப்பிட்டு வேறுபாடுகளை உடனடியாகப் பாருங்கள்
விரிவான வழிகாட்டி
உரை வேறுபாடு: முறைகள், எண்ணிக்கைகள், எப்போது மெதுவாகும்
எழுத்து, சொல், வரி நிலை ஒப்பீடுகள் எப்படிச் செயல்படுகின்றன, சேர்த்தவை, நீக்கியவை, மாற்றங்கள் எதை எண்ணுகின்றன, Windows மற்றும் Unix வரி முடிவுகள் எப்படிக் கையாளப்படுகின்றன, எழுத்து முறையின் 5,000 எழுத்து வரம்பு உட்பட நடைமுறை அளவு வரம்புகள்.
முக்கிய எண்கள் ஒரே பார்வையில்
- படிமுறை
- Myers குறுகிய திருத்தத் தொடர்
- குறைந்தபட்ச நுழைப்புகள், நீக்கங்களைக் கண்டறியும்; Git இயல்பாக இதே குடும்பத்தைப் பயன்படுத்துகிறது.
- ஒப்பீட்டு அலகுகள்
- எழுத்துகள், சொற்கள் அல்லது வரிகள்
- எழுத்து முறை Unicode குறியீட்டுப் புள்ளிகளை ஒப்பிடும்; சொல் முறை இடைவெளியையும் அலகாக வைக்கும்; வரி முறை வரி முறிவுகளில் பிரிக்கும் (CRLF, LF, CR ஒன்றாகவே கருதப்படும்).
- மாற்றங்கள் எண்
- சேர்த்தவை + நீக்கியவை
- மாற்றிய ஒரு சொல் ஒரு நீக்கம் + ஒரு சேர்த்தல், அதாவது 2 மாற்றங்கள்.
- எழுத்து வகையும் இடைவெளியும்
- எப்போதும் கணக்கில் கொள்ளப்படும்
- எழுத்து வகை அல்லது இடைவெளியைப் புறக்கணிக்கும் தேர்வு இல்லை.
ஒப்பீடு எப்படி நடக்கிறது
மூல உரையை இடப்புறமும், மாற்றிய உரையை வலப்புறமும் ஒட்டி, ஒப்பீட்டு முறை, காட்சி முறை ஆகியவற்றைத் தேர்ந்து உரைகளை ஒப்பிடு அழுத்துங்கள் (Ctrl அல்லது Cmd உடன் Enter கூட வேலை செய்யும்). இது நேரடியானது அல்ல; திருத்திய பின் மீண்டும் ஒப்பிடு அழுத்துங்கள். உரைகளை மாற்று இரு பெட்டிகளையும் இடமாற்றும். இரு உரைகளும் உங்கள் உலாவியிலேயே இருக்கும்.
பக்கம் ஒவ்வொரு உரையையும் அலகுகளின் பட்டியலாக்கி, ஒரு பட்டியலை மற்றொன்றாக மாற்றத் தேவையான குறைந்தபட்ச நுழைப்புகளையும் நீக்கங்களையும் Myers படிமுறையால் (E. Myers, "An O(ND) Difference Algorithm and Its Variations", 1986) கண்டறிகிறது. 3,000 சீரற்ற இணைகளில் துல்லியமான நீள்பொது உடன்தொடர் கணக்கீட்டுடன் சோதித்தபோது, முடிவு எப்போதும் செல்லுபடியாகவும் குறைந்தபட்சமாகவும் இருந்தது.
| முறை | அலகு | குறிப்புகள் |
|---|---|---|
| எழுத்து அளவில் | ஒரு Unicode குறியீட்டுப் புள்ளி | 🙂 போன்ற எமோஜி ஓர் அலகு; ஆனால் e மற்றும் இணைப்புக் குறியாக எழுதிய உச்சரிப்பு இரு அலகுகள். |
| சொல் அளவில் | சொற்கள் மற்றும் அவற்றுக்கிடையேயான இடைவெளி | இடைவெளித் தொடர்கள் தனி அலகுகள்; எனவே கூடுதல் இடைவெளிகள் மாற்றங்களாகத் தெரியும். |
| வரி அளவில் | ஒரு வரி (வரி முறிவுகளில் பிரிக்கப்படும்) | நிரல், கட்டமைப்பு, பட்டியல்களுக்குச் சிறந்தது. CRLF, LF, CR ஒரே முறிவாகக் கருதப்படும். |
எடுத்துக்காட்டுகள் (பக்கக் குறியீட்டால் கணக்கிடப்பட்டவை)
| முறை | மூலம் | மாற்றியது | வேறுபாடு |
|---|---|---|---|
| எழுத்து | kitten |
sitting |
-k +s, i, t, t, -e +i, n, +g (3 சேர்த்தவை, 2 நீக்கியவை) |
| சொல் | the quick brown fox |
the quick red fox |
-brown +red (1 சேர்த்தல், 1 நீக்கம்) |
| சொல் | a b |
a b |
ஓர் இடைவெளி நீக்கப்பட்டு இரட்டை இடைவெளி சேர்க்கப்படும் (1 + 1) |
| வரி | l1, l2, l3 |
l1, L2, l3 |
-l2 +L2 |
| எழுத்து | a🙂b |
a😀b |
-🙂 +😀 |
| வரி | a + புதிய வரி |
a |
கூடுதல் வெற்று வரி நீக்கப்படும் |
எண்களின் பொருள்
சேர்த்தவை என்பது மாற்றிய உரையில் மட்டும் உள்ள அலகுகள்; நீக்கியவை மூல உரையில் மட்டும் உள்ளவை; மாற்றங்கள் என்பது இரண்டின் கூட்டுத்தொகை. இது திருத்தப்பட்ட பகுதிகளின் எண்ணிக்கை அல்ல. எனவே ஒரு சொல்லை மாற்றினால் இரண்டு மாற்றங்கள். சொல் முறையில் எண்ணிக்கைகளில் இடைவெளி அலகுகளும் அடங்கும்; அதனால் லேபிளில் உள்ள "சொற்கள்" தோராயமானது. ஒவ்வொரு எண்ணுக்கும் கீழுள்ள அலகு லேபிள் (எழுத்துகள், சொற்கள், வரிகள்) எதை எண்ணுகிறது என்பதைச் சொல்லும்.
உங்களை வியப்பிலாழ்த்தக்கூடியவை
- வரி முடிவுகள் சீராக்கப்படுகின்றன. ஒப்பிடும் முன் எல்லா முறைகளிலும் CRLF (Windows), LF (Unix), தனி CR (பழைய Mac) ஒரே வரி முறிவாகக் கருதப்படும்; எனவே
l1, CRLF,l2ஐl1, LF,l2உடன் ஒப்பிட்டால் வேறுபாடு காட்டப்படாது. இறுதி இடைவெளி போன்ற பிற கண்ணுக்குத் தெரியாத வேறுபாடுகள் இன்னும் கணக்கில் வரும்; கலந்த வரி முடிவுகளை வரி முடிவு கண்டறிவி அடையாளம் காட்டும். - எழுத்து வகையும் இடைவெளியும் முக்கியம்.
Helloஉம்helloஉம் வேறு; தத்தலும் இடைவெளியும் வேறு. புறக்கணிக்கும் தேர்வு இல்லை; முதலில் எழுத்து வகை மாற்றி அல்லது உரைச் சுருக்கி கொண்டு உரையைச் சீராக்குங்கள். - பக்கம்பக்கமாகக் காட்டும் பலகங்கள் ஒத்துவராது. ஒவ்வொரு பலகமும் சமமான அலகுகளையும் தன் சொந்த மாற்றங்களையும் மட்டும் காட்டும்; வெற்று நிரப்பிகள் இல்லை; எனவே மாறாத வரிகள் வெவ்வேறு உயரத்தில் இருக்கலாம்.
- ஒருங்கிணைந்த காட்சி பேட்ச் கோப்பு அல்ல. வரி முறையில் இரு வரி எண் நெடுவரிசைகளும்
+/-குறிகளும் இருக்கும்; ஆனால் hunk தலைப்புகளோ சூழல் வரம்புகளோ இல்லை; எனவேpatchமூலம் பயன்படுத்த இயலாது. - சொல் முறைக்குப் பொருள் தெரியாது. நகர்த்திய வாக்கியம் ஓரிடத்தில் நீக்கமாகவும் வேறிடத்தில் சேர்த்தலாகவும் தோன்றும்.
அளவு வரம்புகளும் வேகமும்
படிமுறை ஒவ்வொரு படிக்கும் நிலையின் நகலை வைத்திருப்பதால், நேரமும் நினைவகமும் உரையின் நீளத்துடன் அல்ல, வேறுபாடுகளின் எண்ணிக்கையின் வர்க்கத்துடன் ஏறக்குறைய வளரும். பக்கம் முதலில் இரு உரைகளின் ஒரே மாதிரியான தொடக்கத்தையும் முடிவையும் தாண்டிச் செல்வதால் ஒத்த உரைகள் விரைவானவை: 3,000 வரிகளில் ஒரு வரி மாறியதை Node.js இல் சுமார் 3 மில்லி வினாடியிலும், ஓர் எழுத்தில் மட்டும் வேறுபடும் இரு 40,000 எழுத்து உரைகளைச் சுமார் 6 மில்லி வினாடியிலும் ஒப்பிட்டது. முற்றிலும் வேறுபட்ட உரைகள் அப்படியல்ல: தொடர்பற்ற இரு சீரற்ற சரங்கள் தலா 1,000 எழுத்துகள் (மொத்தம் 2,000) சோதனைக் கணினியில் எழுத்து முறையில் சுமார் 0.7 வினாடி, தலா 2,000 சுமார் 3 வினாடி, தலா 2,500 (மொத்தம் 5,000, வரம்பு) சுமார் 4 வினாடி எடுத்தன; தலா 5,000 வரம்பு வருவதற்கு முன் 22 வினாடி எடுத்தது. உலாவி வேகம் மாறுபடும், ஆனால் போக்கு அதுவே.
எழுத்து முறைக்கு வரம்பு உண்டு. ஒரே மாதிரியான தொடக்கமும் முடிவும் தவிர்த்த பிறகு, இரு உரைகளிலும் சேர்த்து வேறுபடும் பகுதிகள் 5,000 எழுத்துகளை மீறினால், பக்கம் செய்தி காட்டி ஒப்பிடாது. மிகக் குறைவான அலகுகள் கொண்ட சொல் அல்லது வரி முறைக்கு மாறுங்கள், அல்லது பகுதி பகுதியாக ஒப்பிடுங்கள். சொல் மற்றும் வரி முறைகளுக்கு அந்த வரம்பு இல்லை; ஆனால் மிகப் பெரிய ஆவணங்கள் (பல்லாயிரம் சொற்கள்) இன்னும் மெதுவாகலாம்.
குறிப்பு: எழுத்து முறை மெதுவாக இருந்தால் முதலில் வரி அல்லது சொல் முறைக்கு மாறி, மாறிய வரிகளை மட்டும் ஆழமாகப் பாருங்கள்.
பொதுவான தவறுகள்
- மாற்றங்களைச் சேர்த்த + நீக்கிய அலகுகளாக அல்லாமல், திருத்தங்களின் எண்ணிக்கையாகப் படிப்பது.
- வெவ்வேறு அமைப்புகளின் உரைகளை ஒப்பிடும்போது இறுதி இடைவெளிகள் அல்லது தத்தல்கள் புறக்கணிக்கப்படும் என எதிர்பார்ப்பது; வரி முடிவின் வகை மட்டுமே சீராக்கப்படும்.
- நீண்ட ஆவணங்களுக்கு எழுத்து முறையைப் பயன்படுத்துவது. வேறுபடும் எழுத்துகள் 5,000-ஐத் தாண்டினால் அது நின்று, முறையை மாற்றச் சொல்லும்.
- கருவி இறுதி இடைவெளிகளையோ எழுத்து வகையையோ புறக்கணிக்கும் என எதிர்பார்ப்பது.
தொடர்புடைய கருவிகள்
வரி முடிவு கண்டறிவி CRLF மற்றும் LF ஐக் காட்டும். வரி முறிவுகளை நீக்கு, உரை வரிசைப்படுத்தி ஒப்பிடும் முன் பட்டியல்களைச் சீர்செய்யும். மறைந்த எழுத்து சுத்தப்படுத்தி கண்ணுக்குத் தெரியாத வேறுபாடுகளை நீக்கும். சொல் எண்ணி ஒவ்வொரு பதிப்பின் அளவையும் அளக்கும்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
எனது உரை சேவையகத்துக்கு அனுப்பப்படுமா?
இல்லை. உரை ஒப்பீடு JavaScript மூலம் உங்கள் இணைய உலாவியிலேயே நடக்கிறது. முக்கிய ஆவணங்களுக்கான தனியுரிமையும் பாதுகாப்பும் உறுதியாக, உரை உங்கள் சாதனத்தை விட்டு வெளியேறாது.
ஒப்பிடக்கூடிய உரையின் அதிகபட்ச நீளம் என்ன?
சொல் மற்றும் வரி அளவு முறைகளுக்கு நிலையான வரம்பில்லை; ஆனால் மிக நீளமான உரைகள் (பல்லாயிரக்கணக்கான சொற்கள்) உலாவியை மெதுவாக்கலாம். எழுத்து அளவு முறை ஒரே நேரத்தில் 5,000 வேறுபடும் எழுத்துகள் வரை ஒப்பிடும் (ஒரே மாதிரியான தொடக்கமும் முடிவும் கணக்கில் வராது); அதற்கு மேல் சொல் அல்லது வரி அளவு முறைக்கு மாறச் சொல்லும், ஏனெனில் எழுத்துக்கு எழுத்து ஒப்பீட்டுக்கு அதிக நேரமும் நினைவகமும் தேவை.
இந்தக் கருவியால் குறியீட்டுக் கோப்புகளை ஒப்பிடலாமா?
முடியும். மூலக் குறியீடு, அமைப்புக் கோப்புகள் மற்றும் கட்டமைக்கப்பட்ட உரைகளை வரி வாரியாகத் தெளிவாக ஒப்பிட வரி அளவிலான முறை சிறப்பாக வடிவமைக்கப்பட்டுள்ளது.
எந்த ஒப்பீட்டு முறையைப் பயன்படுத்த வேண்டும்?
எழுத்துகளைத் துல்லியமாக ஒப்பிட எழுத்து அளவையும், ஆவணங்கள் மற்றும் கட்டுரைகளுக்கு சொல் அளவையும், குறியீடு மற்றும் அமைப்புக் கோப்புகளுக்கு வரி அளவையும் பயன்படுத்துங்கள். பொதுவான உரைக்கு சொல் அளவில் தொடங்குங்கள்.
ஒப்பீட்டு முடிவுகளைச் சேமிக்க அல்லது ஏற்றுமதி செய்யலாமா?
தற்போது நகலெடுக்கும் பொத்தான்கள் மூலம் அசல் அல்லது திருத்திய உரையை நகலகத்துக்கு நகலெடுக்கலாம். நிரந்தரச் சேமிப்புக்கு ஒப்பீட்டின் திரைப்பிடிப்பை எடுக்கவும் அல்லது நகலெடுத்த உரையைச் சேமிக்கவும்.
இந்தக் கருவி இணையமின்றி இயங்குமா?
பக்கம் ஏற்றப்பட்ட பிறகு JavaScript மூலம் உலாவியிலேயே செயலாக்கம் நடப்பதால் இணைய இணைப்பின்றியும் ஒப்பிடலாம்.
வேறுபாட்டுக் கணிப்புமுறை எவ்வளவு துல்லியமானது?
Git போன்ற பதிப்புக் கட்டுப்பாட்டு அமைப்புகள் பயன்படுத்தும் நிலையான Myers கணிப்புமுறையைப் பயன்படுத்துகிறோம். இது துல்லியமான, நம்பகமான வேறுபாடுகளைக் கண்டறியும்.
ஆங்கிலமல்லாத உரைகளை ஒப்பிடலாமா?
ஆம். சீனம், அரபு, ஜப்பானியம், கொரியன் உள்ளிட்ட எந்த மொழி உரையையும் ஒப்பிட எல்லா யூனிகோட் எழுத்துகளையும் கருவி ஆதரிக்கிறது.
நிறக் குறியீடுகள் எதைக் குறிக்கின்றன?
திருத்திய பதிப்பில் சேர்க்கப்பட்ட உரை பச்சை நிறத்திலும் நீக்கப்பட்ட உரை சிவப்பு நிறத்திலும் காட்டப்படும். எளிதாக வாசிக்க மாறாத உரை வழக்கமான வடிவிலேயே இருக்கும்.
இரண்டுக்கும் மேற்பட்ட உரைகளை ஒப்பிடலாமா?
தற்போது ஒரே நேரத்தில் இரண்டு உரைகளை ஒப்பிடலாம். பல பதிப்புகளை ஒப்பிட, ஒவ்வொரு ஜோடியையும் தனித்தனியாக ஒப்பிடுங்கள்.
ஆதாரங்கள்
- Git — git-diff documentation (--diff-algorithm) — Describes Myers as the basic greedy algorithm and the current default.
- MDN — String iterator (code points)
இந்த வழிகாட்டி வெளியிடப்பட்ட விதிகளை எளிய மொழியில் விளக்குகிறது. இது நிதி, சட்ட அல்லது அதிகாரப்பூர்வ ஆலோசனை அல்ல — விதிகள் மாறக்கூடும், எனவே முடிவெடுக்கும் முன் மேலே இணைக்கப்பட்ட அமைப்பிடம் உறுதிப்படுத்துங்கள்.