§

Options

காட்சி
நுண்மை அளவு
Preprocessing
§

Input

தமிழக IT நிறுவனங்கள் மற்றும் freelancers GitHub PR reviews, client deliverable tracking மற்றும் API contract changes க்கு தினசரி diff தேவைப்படுகிறது. CUI-level தரவை கையாளும் IT services நிறுவனங்கள் அந்த snippets ஐ public SaaS tools இல் ஒட்டுவதை policy violations கருதுகின்றன. Browser-tab comparison — upload இல்லை, account இல்லை, third-party log இல்லை — workflow ஐ developers க்கு வேகமாக மற்றும் data-handling policies எழுதுபவர்களுக்கு ஏற்கத்தக்கதாக வைக்கிறது.

Diff algorithms எவ்வாறு வேலை செய்கின்றன

இந்த பக்கத்தில் உள்ள ஒவ்வொரு diff view உம் Myers algorithm ஆல் உருவாக்கப்படுகிறது — Eugene W. Myers இன் 1986 தொழில்நுட்பம், இது O((N+M)D) நேரத்தில் இரண்டு token sequences க்கு இடையே மிகக்குறைந்த edit script கண்டறிகிறது, D என்பது edit distance. இந்த algorithm Longest Common Subsequence பிரச்சினையை மையமாக கொண்டது, மற்றும் இயந்திரம் திறந்த மூல jsdiff library பயன்படுத்தி முழுவதும் உங்கள் உலாவியில் இயங்குகிறது.

  1. உள்ளீடுகளை tokenise செய்யுங்கள் — ஒப்பிடுவதற்கு முன், algorithm ஒவ்வொரு உள்ளீட்டையும் tokens வரிசையாக பிரிக்கிறது. Line granularity newlines மீது பிரிக்கிறது; word granularity whitespace மற்றும் punctuation எல்லைகளில் பிரிக்கிறது; character granularity ஒவ்வொரு Unicode code point ஐயும் சொந்த token ஆக நடத்துகிறது.
  2. Edit graph கட்டவும் — Myers algorithm ஒப்பீட்டை 2D grid வழியாக ஒரு பாதையாக மாதிரிசெய்கிறது, வலதுபுறம் நகர்வு 'அசலிலிருந்து நீக்கு', கீழே நகர்வு 'மாற்றப்பட்டதிலிருந்து செருகு', மற்றும் மூலைவிட்டமாக நகர்வு 'இரண்டிலும் token பொருந்துகிறது' என்று அர்த்தம். Algorithm மிகக்குறைந்த மூலைவிட்ட-கனமான பாதை கண்டறிகிறது.
  3. LCS பிரித்தெடுக்கவும் — மிகக்குறைந்த பாதையில் மூலைவிட்ட நகர்வுகள் Longest Common Subsequence ஐ trace செய்கின்றன — இரண்டு உள்ளீடுகளிலும் ஒரே relative order ல் தோன்றும் tokens. LCS இல் ஒவ்வொரு token உம் 'மாறாதது'; மற்ற எல்லாமே சேர்க்கை அல்லது நீக்கம்.
  4. Preprocessing options பயன்படுத்துங்கள் — "Case புறக்கணி" இயக்கினால், LCS pass க்கு முன் இரண்டு உள்ளீடுகளும் lowercase செய்யப்படுகின்றன, எனவே "HELLO" மற்றும் "hello" ஒரே மாதிரியாக கணக்கிடப்படும். "Whitespace புறக்கணி" பல இடைவெளிகளை ஒன்றாக சுருக்குகிறது. "ஒவ்வொரு வரியையும் trim செய்" ஒப்பீட்டிற்கு முன் வரி-க்கு-வரி leading மற்றும் trailing whitespace நீக்குகிறது.
  5. தேர்ந்தெடுத்த view காட்டவும் — வெளியீடு அதே LCS முடிவை மூன்று வழிகளில் காட்டுகிறது: Side-by-side இடது பக்கத்தில் அசலையும் வலது பக்கத்தில் மாற்றப்பட்டதையும் சிவப்பு மற்றும் பச்சை row highlights உடன் இரு-நெடுவரிசை grid இல் காட்டுகிறது. Unified ஒரு நெடுவரிசையை − மற்றும் + prefix வரிகளுடன் காட்டுகிறது, git diff வெளியீட்டை போல. Inline அதே உரை flow க்குள் நீக்கங்களை சிவப்பு strikethrough ஆகவும் சேர்க்கைகளை பச்சை underline ஆகவும் காட்டுகிறது.
  6. Summary strip கணக்கிடவும் — காட்டிய பிறகு, கருவி எத்தனை tokens சேர்க்கப்பட்டன, நீக்கப்பட்டன மற்றும் மாறாமல் இருக்கின்றன என்று எண்ணுகிறது, பின்னர் இரண்டு உள்ளீட்டு நீளங்களில் பெரியதோடு மாறாத tokens இன் விகிதமாக similarity கணக்கிடுகிறது. 100% similarity என்பது preprocessing க்குப் பிறகு உள்ளீடுகள் ஒரே மாதிரியானவை என்று அர்த்தம்.

Diff checker ஏன் பயன்படுத்தவேண்டும்

  • Git client இல்லாமல் code review — ஒரு config கோப்பு, SQL migration அல்லது shell script இன் இரண்டு பதிப்புகளை ஒட்டி, repo clone செய்யாமல், branches மாறாமல் அல்லது CI pipeline காத்திருக்காமல் என்ன மாறியது பாருங்கள். Pair programming போது விரைவான reviews க்கு, Git வரலாறு பகிராத contractor handoffs க்கு, மற்றும் version control இல்லாமல் இருக்கும் legacy codebases க்கு கருவி பயனுள்ளது. Unified view நீங்கள் நேரடியாக chat thread அல்லது ticket ஆக நகலெடுக்கக்கூடிய வெளியீட்டை தருகிறது.
  • Contract மற்றும் document redlines — Word-level diff எந்த terms contract drafts க்கு இடையில் மாறின என்று Word இன் Track Changes panel ஐ விட வேகமாக காட்டுகிறது. முதல் draft இலிருந்து clause A மற்றும் executed copy இலிருந்து clause B ஒட்டுங்கள், மாறிய சரியான phrase இல் red-on-green ஒளிரும். கடைசி நிமிட redlines review கடந்து போனதா இல்லையா என்று contract கையெழுத்திட முன் verify செய்ய paralegals இதைப் பயன்படுத்துகிறார்கள்.
  • கட்டுரை மற்றும் draft திருத்தங்கள் — முதல் draft ஐ திருத்தப்பட்ட பதிப்புடன் ஒப்பிடும் எழுத்தாளர்கள் இரண்டு copies ஐயும் மீண்டும் படிக்காமல் ஒவ்வொரு மாற்றீடு, செருகல் மற்றும் குறைப்பை பார்க்க word granularity க்கு மாறலாம். அதே workflow பதிப்பாளர்கள் source text க்கு எதிராக மாற்றங்களை auditing செய்ய மொழிபெயர்ப்பாளர்களுக்கும், copy edit author இன் குரலை பாதுகாத்ததா என்று சோதிக்கும் editors க்கும் வேலை செய்கிறது.
  • Log மற்றும் config ஒப்பீடு — இரண்டு server config snapshots, இரண்டு cron schedules அல்லது இரண்டு ps aux வெளியீடுகளை ஒப்பிடும் sysadmins, line granularity பயன்படுத்தி 200-வரி கோப்பில் மாற்றப்பட்ட ஒற்றை parameter ஐ வினாடிகளில் கண்டறியலாம். Ignore-whitespace option உடன் இணைத்தால் ஒரு noisy alignment-only diff உண்மையில் முக்கியமான parameter மாற்றங்களுக்கு சுருங்குகிறது.

பொதுவான பயன்பாடுகள்

Text diff எழுத்து, development மற்றும் operations வேலையில் ஒவ்வொரு edit cycle முடிவிலும் தோன்றுகிறது.

  • Pull request review: branch checkout overhead இல்லாமல் approve செய்வதற்கு முன் logic மாற்றத்தை புரிந்துகொள்ள இரண்டு function implementations ஐ பக்கவாட்டில் ஒட்டவும்.
  • Internationalisation QA: translator அறிமுகப்படுத்தியிருக்கலாம் என்ற insertions, omissions அல்லது terminology swaps கண்டறிய English source சரத்தை word level ல் மொழிபெயர்க்கப்பட்ட சரத்துடன் ஒப்பிடவும்.
  • Incident analysis: outage க்கு முந்தைய configuration மாற்றத்தை தனிமைப்படுத்த இரண்டு Kubernetes manifest snapshots அல்லது இரண்டு "docker inspect" வெளியீடுகளை line level ல் diff செய்யவும்.

ஒரு செய்யப்பட்ட எடுத்துக்காட்டு

ஐந்து-வரி server config எடுங்கள். அசல்: host=localhost, port=5432, dbname=app_db, user=app, password=secret. மாற்றப்பட்டது: host=db.prod.example.com, port=5432, dbname=app_db, user=app_prod, password=secret. Line granularity மற்றும் Side-by-side view உடன், வரி 1 இடதுபுறத்தில் சிவப்பு (host=localhost) மற்றும் வலதுபுறத்தில் பச்சை (host=db.prod.example.com), வரி 4 சிவப்பு (user=app) மற்றும் பச்சை (user=app_prod) காட்டுகிறது, வரிகள் 2, 3 மற்றும் 5 இரு பக்கத்திலும் மாறாமல் இருக்கின்றன. Summary strip 2 additions, 2 deletions, 3 unchanged மற்றும் 60% similarity — ஐந்தில் மூன்று வரிகள் — என்று தெரிவிக்கிறது. Word granularity க்கு மாறினால் diff இன்னும் இறுக்கமாகிறது: வரி 1 மற்றும் 4 இல் = வலதுபுறம் உள்ள values மட்டும் ஒளிர்கின்றன, keys மாறாமல் இருக்கின்றன, similarity சுமார் 85% க்கு ஏறுகிறது.

இது என் உலாவியில் இயங்குகிறதா?

ஆம். முழு diff computation திறந்த மூல jsdiff library பயன்படுத்தி client-side இயங்குகிறது, இது பக்கத்துடன் ஏற்றப்படுகிறது. நீங்கள் தட்டச்சு செய்வது, ஒட்டுவது அல்லது ஒப்பிடுவது எதுவும் எந்த சேவையகத்திற்கும் அனுப்பப்படவில்லை. நீங்களே verify செய்யலாம்: browser DevTools திறந்து, Network tab க்கு மாறி, log clear செய்து, Compare கிளிக் செய்து, comparison step க்கு பூஜ்ய நெட்வொர்க் requests fire ஆவதை உறுதிசெய்யுங்கள்.

Similarity percentage என்ன அர்த்தம்?

Similarity மாறாத tokens / max(அசலில் மொத்த tokens, மாற்றப்பட்டதில் மொத்த tokens) ஆக கணக்கிடப்படுகிறது. 100% score என்பது உங்கள் preprocessing options (case folding, whitespace collapsing, line trimming) பயன்படுத்திய பிறகு இரண்டு உள்ளீடுகளும் ஒரே மாதிரியானவை. 0% score என்பது உள்ளீடுகளுக்கு இடையில் எந்த token உம் பகிரப்படவில்லை. Metric edit distance இன் தோராயமான approximation — விரைவான gauge ஆக பயனுள்ளது — plagiarism அல்லது originality score அல்ல.

JSON / YAML / XML ஐ semantically diff செய்யலாமா?

இந்த கருவியில் இல்லை. இது ஒரு text-level diff, எனவே JSON அல்லது XML இன் whitespace-only reformatting data logically ஒரே மாதிரியாக இருந்தாலும் பல மாற்றங்களை காட்டுகிறது. JSON இல் object keys ஐ மீண்டும் வரிசைப்படுத்துவது மாற்றங்களாக காட்டுகிறது, பெரும்பாலான parsers key order ஐ முக்கியமற்றதாக நடத்தினாலும். பொருண்மையான diff க்கு நாங்கள் dedicated JSON Diff கருவி திட்டமிட்டுள்ளோம். இப்போதைக்கு, இங்கே ஒட்டுவதற்கு முன் இரண்டு உள்ளீடுகளையும் ஒரே indentation மற்றும் key order க்கு normalize செய்யுங்கள்.

Unified vs side-by-side views எவ்வாறு வேறுபடுகின்றன?

Side-by-side இரண்டு நெடுவரிசைகளை காட்டுகிறது: அசல் இடதுபுறத்தில் மற்றும் மாற்றப்பட்ட பதிப்பு வலதுபுறத்தில், நீக்கப்பட்ட வரிகள் இடதுபுறத்தில் சிவப்பாகவும் சேர்க்கப்பட்ட வரிகள் வலதுபுறத்தில் பச்சையாகவும் highlight ஆகின்றன. மாறாத வரிகள் இரண்டு நெடுவரிசைகளிலும் ஒரே row ஆக காட்டப்படுகின்றன. Unified ஒரு நெடுவரிசையை prefix மற்றும் சிவப்பு background உடன் நீக்கப்பட்ட வரிகளுக்கும் + prefix மற்றும் பச்சை background உடன் சேர்க்கப்பட்ட வரிகளுக்கும் காட்டுகிறது — git diff terminal ல் print செய்வதை போல. Unified ஐ patch கோப்பாக copy செய்யும்போது அல்லது code review thread ல் ஒட்டும்போது பயன்படுத்துங்கள். Side-by-side ஐ எது எதை மாற்றியது என்ற visual alignment raw patch text ஐ விட முக்கியமாக இருக்கும்போது பயன்படுத்துங்கள்.

அசலை இடதுபுறத்தில், மாற்றப்பட்ட பதிப்பை வலதுபுறத்தில் ஒட்டுங்கள், ஒரு view மற்றும் granularity தேர்வு செய்யுங்கள், ஒப்பீடு மில்லி வினாடிகளில் தோன்றும். நேரடி பயன்முறையை இயக்கினால் நீங்கள் எந்த பக்கத்திலும் தொகுக்கும்போது ஒவ்வொரு keypress இலும் diff மீண்டும் இயங்குகிறது. git apply நேரடியாக நுகரும் standard unified .patch கோப்பாக முடிவை பதிவிறக்கவும். Upload இல்லை, account இல்லை, vendor API key இல்லை, quota இல்லை.