ਡਿੱਫ ਐਲਗੋਰਿਦਮ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ
ਇਸ ਪੇਜ 'ਤੇ ਹਰ ਡਿੱਫ ਦ੍ਰਿਸ਼ Myers ਐਲਗੋਰਿਦਮ ਦੁਆਰਾ ਪੈਦਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ — 1986 ਦੀ Eugene W. Myers ਦੀ ਤਕਨੀਕ ਜੋ ਦੋ ਟੋਕਨ ਕ੍ਰਮਾਂ ਵਿਚਕਾਰ ਸਭ ਤੋਂ ਛੋਟੀ ਸੰਪਾਦਨ ਸਕ੍ਰਿਪਟ ਲੱਭਦੀ ਹੈ। ਇੰਜਣ ਓਪਨ-ਸੋਰਸ jsdiff ਲਾਇਬ੍ਰੇਰੀ ਵਰਤ ਕੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਚੱਲਦਾ ਹੈ।
- ਇਨਪੁੱਟ ਟੋਕੇਨਾਈਜ਼ ਕਰੋ — ਤੁਲਨਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਐਲਗੋਰਿਦਮ ਹਰ ਇਨਪੁੱਟ ਨੂੰ ਟੋਕਨਾਂ ਦੀ ਕ੍ਰਮ ਵਿੱਚ ਵੰਡਦਾ ਹੈ। ਲਾਈਨ ਸ਼ੁੱਧਤਾ ਨਵੀਆਂ ਲਾਈਨਾਂ 'ਤੇ ਵੰਡਦੀ ਹੈ; ਸ਼ਬਦ ਸ਼ੁੱਧਤਾ ਵਾਈਟਸਪੇਸ ਅਤੇ ਵਿਰਾਮ ਚਿੰਨ੍ਹ ਸੀਮਾਵਾਂ 'ਤੇ ਵੰਡਦੀ ਹੈ; ਅੱਖਰ ਸ਼ੁੱਧਤਾ ਹਰ Unicode ਕੋਡ ਪੁਆਇੰਟ ਨੂੰ ਆਪਣਾ ਟੋਕਨ ਮੰਨਦੀ ਹੈ।
- ਸੰਪਾਦਨ ਗ੍ਰਾਫ ਬਣਾਓ — Myers ਐਲਗੋਰਿਦਮ ਤੁਲਨਾ ਨੂੰ 2D ਗਰਿੱਡ ਵਿੱਚ ਇੱਕ ਮਾਰਗ ਵਜੋਂ ਮਾਡਲ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਸੱਜੇ ਜਾਣ ਦਾ ਮਤਲਬ ਹੈ “ਅਸਲ ਤੋਂ ਹਟਾਓ”, ਹੇਠਾਂ ਜਾਣ ਦਾ ਮਤਲਬ ਹੈ “ਬਦਲੇ ਤੋਂ ਜੋੜੋ”, ਅਤੇ ਤਿਰਛੇ ਜਾਣ ਦਾ ਮਤਲਬ ਹੈ “ਟੋਕਨ ਦੋਵਾਂ ਵਿੱਚ ਮੇਲ ਖਾਂਦਾ ਹੈ”।
- LCS ਕੱਢੋ — ਸਭ ਤੋਂ ਛੋਟੇ ਮਾਰਗ ਵਿੱਚ ਤਿਰਛੀਆਂ ਹਿਲਜੁਲਾਂ ਲੌਂਗੈਸਟ ਕਾਮਨ ਸਬਸੀਕੁਐਂਸ ਟ੍ਰੇਸ ਕਰਦੀਆਂ ਹਨ — ਉਹ ਟੋਕਨ ਜੋ ਦੋਵੇਂ ਇਨਪੁੱਟਾਂ ਵਿੱਚ ਉਸੇ ਸਾਪੇਖਿਕ ਕ੍ਰਮ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ। LCS ਵਿੱਚ ਹਰ ਟੋਕਨ “ਬਦਲਿਆ ਨਹੀਂ” ਹੈ; ਬਾਕੀ ਸਭ ਜੋੜ ਜਾਂ ਹਟਾਵ ਹੈ।
- ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ ਵਿਕਲਪ ਲਾਗੂ ਕਰੋ — ਜੇ ਤੁਸੀਂ “ਕੇਸ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰੋ” ਸਮਰੱਥ ਕਰੋ, ਦੋਵੇਂ ਇਨਪੁੱਟ LCS ਪਾਸ ਤੋਂ ਪਹਿਲਾਂ ਛੋਟੇ ਅੱਖਰਾਂ ਵਿੱਚ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। “ਵਾਈਟਸਪੇਸ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰੋ” ਕਈ ਸਪੇਸਾਂ ਨੂੰ ਇੱਕ ਵਿੱਚ ਸਮੇਟਦਾ ਹੈ। “ਹਰ ਲਾਈਨ ਟ੍ਰਿਮ ਕਰੋ” ਤੁਲਨਾ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਤੀ-ਲਾਈਨ ਅਗਲੇ ਅਤੇ ਪਿਛਲੇ ਵਾਈਟਸਪੇਸ ਹਟਾਉਂਦਾ ਹੈ।
- ਚੁਣਿਆ ਦ੍ਰਿਸ਼ ਦਿਖਾਓ — ਆਉਟਪੁੱਟ ਉਹੀ LCS ਨਤੀਜਾ ਤਿੰਨ ਤਰੀਕਿਆਂ ਨਾਲ ਦਿਖਾਉਂਦਾ ਹੈ: ਨਾਲ-ਨਾਲ ਖੱਬੇ ਪਾਸੇ ਅਸਲ ਅਤੇ ਸੱਜੇ ਪਾਸੇ ਬਦਲਿਆ ਦੋ-ਕਾਲਮ ਗਰਿੱਡ ਵਿੱਚ ਦਿਖਾਉਂਦਾ ਹੈ। ਯੂਨੀਫਾਈਡ − ਅਤੇ + ਅਗੇਤਰ ਲਾਈਨਾਂ ਨਾਲ ਇੱਕ ਕਾਲਮ ਦਿਖਾਉਂਦਾ ਹੈ,
git diffਦੇ ਆਉਟਪੁੱਟ ਵਾਂਗੂ। ਇਨਲਾਈਨ ਹਟਾਵ ਲਾਲ ਸਟ੍ਰਾਈਕਥ੍ਰੂ ਅਤੇ ਜੋੜ ਹਰੇ ਅੰਡਰਲਾਈਨ ਵਜੋਂ ਦਿਖਾਉਂਦਾ ਹੈ। - ਸੰਖੇਪ ਪੱਟੀ ਦੀ ਗਣਨਾ ਕਰੋ — ਦਿਖਾਉਣ ਤੋਂ ਬਾਅਦ, ਸੰਦ ਗਿਣਦਾ ਹੈ ਕਿ ਕਿੰਨੇ ਟੋਕਨ ਜੋੜੇ, ਹਟਾਏ ਅਤੇ ਬਦਲੇ ਨਹੀਂ ਗਏ, ਫਿਰ ਸਮਾਨਤਾ ਬਦਲੇ-ਨਹੀਂ ਟੋਕਨਾਂ ਅਤੇ ਵੱਡੇ ਇਨਪੁੱਟ ਲੰਬਾਈ ਦੇ ਅਨੁਪਾਤ ਵਜੋਂ ਗਿਣਦਾ ਹੈ। 100% ਸਮਾਨਤਾ ਦਾ ਮਤਲਬ ਹੈ ਇਨਪੁੱਟ ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ ਤੋਂ ਬਾਅਦ ਇੱਕੋ ਜਿਹੇ ਹਨ।
ਡਿੱਫ ਚੈੱਕਰ ਕਿਉਂ ਵਰਤੋ
- Git ਕਲਾਇੰਟ ਤੋਂ ਬਿਨਾਂ ਕੋਡ ਸਮੀਖਿਆ — ਕੌਂਫਿਗ ਫ਼ਾਈਲ, ਇੱਕ SQL ਮਾਈਗ੍ਰੇਸ਼ਨ, ਜਾਂ ਇੱਕ ਸ਼ੈੱਲ ਸਕ੍ਰਿਪਟ ਦੇ ਦੋ ਵਰਜ਼ਨ ਪੇਸਟ ਕਰੋ ਅਤੇ ਰੀਪੋ ਕਲੋਨ ਕੀਤੇ, ਬ੍ਰਾਂਚਾਂ ਬਦਲੇ, ਜਾਂ CI ਪਾਈਪਲਾਈਨ ਦੀ ਉਡੀਕ ਕੀਤੇ ਬਿਨਾਂ ਦੇਖੋ ਕੀ ਬਦਲਿਆ। ਇਹ ਸੰਦ ਪੇਅਰ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਦੌਰਾਨ ਛੇਤੀ ਸਮੀਖਿਆਵਾਂ ਲਈ, ਉਹਨਾਂ ਠੇਕੇਦਾਰ ਹੈਂਡਆਫਾਂ ਲਈ ਜਿੱਥੇ ਦੂਜੇ ਪਾਸੇ ਨੇ ਆਪਣਾ Git ਇਤਿਹਾਸ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ, ਅਤੇ ਉਹਨਾਂ ਪੁਰਾਣੇ ਕੋਡਬੇਸਾਂ ਲਈ ਜੋ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵਰਜ਼ਨ ਕੰਟਰੋਲ ਤੋਂ ਪਹਿਲਾਂ ਦੇ ਹਨ, ਕੰਮ ਆਉਂਦਾ ਹੈ। ਯੂਨੀਫਾਈਡ ਦ੍ਰਿਸ਼ ਅਜਿਹਾ ਆਉਟਪੁੱਟ ਪੈਦਾ ਕਰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਸਿੱਧਾ ਚੈਟ ਥ੍ਰੈੱਡ ਜਾਂ ਟਿਕਟ ਵਿੱਚ ਕਾਪੀ ਕਰ ਸਕਦੇ ਹੋ।
- ਕੌਂਟਰੈਕਟ ਅਤੇ ਦਸਤਾਵੇਜ਼ ਰੈੱਡਲਾਈਨ — ਸ਼ਬਦ-ਪੱਧਰੀ ਡਿੱਫ Word ਦੇ Track Changes ਪੈਨਲ ਨਾਲੋਂ ਤੇਜ਼ੀ ਨਾਲ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕੌਂਟਰੈਕਟ ਡਰਾਫਟਾਂ ਵਿਚਕਾਰ ਕਿਹੜੀਆਂ ਸ਼ਰਤਾਂ ਬਦਲੀਆਂ। ਕਾਨੂੰਨੀ ਅਤੇ ਖਰੀਦਦਾਰੀ ਟੀਮਾਂ ਇਹ ਜਾਂਚਣ ਲਈ ਵਰਤਦੀਆਂ ਹਨ ਕਿ ਕੌਂਟਰੈਕਟ 'ਤੇ ਦਸਤਖਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੋਈ ਅੰਤਿਮ-ਮਿੰਟ ਰੈੱਡਲਾਈਨ ਸਮੀਖਿਆ ਤੋਂ ਨਹੀਂ ਖਿਸਕੀ।
- ਲੇਖ ਅਤੇ ਡਰਾਫਟ ਸੋਧਾਂ — ਜਿਹੜੇ ਲੇਖਕ ਪਹਿਲੇ ਡਰਾਫਟ ਦੀ ਇੱਕ ਸੰਪਾਦਿਤ ਵਰਜ਼ਨ ਨਾਲ ਤੁਲਨਾ ਕਰਦੇ ਹਨ ਉਹ ਦੋਵੇਂ ਕਾਪੀਆਂ ਮੁੜ-ਪੜ੍ਹੇ ਬਿਨਾਂ ਹਰ ਬਦਲੀ, ਹਰ ਜੋੜ, ਅਤੇ ਹਰ ਕੱਟ ਦੇਖਣ ਲਈ ਸ਼ਬਦ ਸ਼ੁੱਧਤਾ 'ਤੇ ਬਦਲ ਸਕਦੇ ਹਨ। ਉਹੀ ਵਰਕਫਲੋ ਉਹਨਾਂ ਅਨੁਵਾਦਕਾਂ ਲਈ ਜੋ ਸਰੋਤ ਪਾਠ ਦੇ ਖ਼ਿਲਾਫ਼ ਬਦਲਾਵਾਂ ਦਾ ਆਡਿਟ ਕਰਦੇ ਹਨ, ਉਹਨਾਂ ਸੰਪਾਦਕਾਂ ਲਈ ਜੋ ਜਾਂਚ ਕਰਦੇ ਹਨ ਕਿ ਕਾਪੀ ਐਡਿਟ ਨੇ ਲੇਖਕ ਦੀ ਆਵਾਜ਼ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਿਆ, ਅਤੇ ਉਹਨਾਂ ਪੱਤਰਕਾਰੀ ਟੀਮਾਂ ਲਈ ਜੋ ਇੱਕ ਪ੍ਰਕਾਸ਼ਿਤ ਲੇਖ ਨੂੰ ਫ਼ਾਈਲ ਕੀਤੇ ਡਰਾਫਟ ਨਾਲ ਮਿਲਾਉਂਦੀਆਂ ਹਨ, ਵੀ ਉਸੇ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦਾ ਹੈ।
- ਲਾਗ ਅਤੇ ਕੌਂਫਿਗ ਤੁਲਨਾ — ਜਿਹੜੇ ਸਿਸਟਮ ਪ੍ਰਸ਼ਾਸਕ ਦੋ ਸਰਵਰ ਕੌਂਫਿਗ ਸਨੈਪਸ਼ਾਟ, ਦੋ cron ਸ਼ਡਿਊਲ, ਜਾਂ ਦੋ
ps auxਆਉਟਪੁੱਟਾਂ ਦੀ ਤੁਲਨਾ ਕਰਦੇ ਹਨ ਉਹ ਇੱਕ 200-ਲਾਈਨ ਫ਼ਾਈਲ ਵਿੱਚ ਇੱਕੋ ਬਦਲੇ ਹੋਏ ਪੈਰਾਮੀਟਰ ਨੂੰ ਸਕਿੰਟਾਂ ਵਿੱਚ ਲੱਭਣ ਲਈ ਲਾਈਨ ਸ਼ੁੱਧਤਾ ਵਰਤ ਸਕਦੇ ਹਨ। ਇਸਨੂੰ Ignore-whitespace ਵਿਕਲਪ ਨਾਲ ਜੋੜੋ ਅਤੇ ਇੱਕ ਰੌਲੇ ਵਾਲਾ ਕੇਵਲ-ਅਲਾਈਨਮੈਂਟ ਡਿੱਫ ਉਹਨਾਂ ਪੈਰਾਮੀਟਰ ਬਦਲਾਵਾਂ ਤੱਕ ਸੁੰਗੜ ਜਾਂਦਾ ਹੈ ਜੋ ਅਸਲ ਵਿੱਚ ਮਾਇਨੇ ਰੱਖਦੇ ਹਨ।
ਆਮ ਵਰਤੋਂ
ਟੈਕਸਟ ਡਿੱਫ ਲਿਖਾਈ, ਡਿਵੈਲਪਮੈਂਟ ਅਤੇ ਓਪਰੇਸ਼ਨਾਂ ਕੰਮ ਵਿੱਚ ਹਰ ਸੰਪਾਦਨ ਚੱਕਰ ਦੇ ਅੰਤ 'ਤੇ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।
- ਪੁੱਲ ਰਿਕੁਐਸਟ ਸਮੀਖਿਆ: ਬ੍ਰਾਂਚ ਚੈੱਕਆਉਟ ਕੀਤੇ ਬਿਨਾਂ ਮਨਜ਼ੂਰੀ ਤੋਂ ਪਹਿਲਾਂ ਤਰਕ ਬਦਲਾਵ ਸਮਝਣ ਲਈ ਦੋ ਫੰਕਸ਼ਨ ਲਾਗੂਕਰਨਾਂ ਨਾਲ-ਨਾਲ ਪੇਸਟ ਕਰੋ।
- ਅੰਤਰਰਾਸ਼ਟਰੀਕਰਨ QA: ਅਨੁਵਾਦਕ ਦੁਆਰਾ ਪੇਸ਼ ਕੀਤੇ ਜੋੜ, ਛੱਡੇ ਜਾਂ ਸ਼ਬਦਾਵਲੀ ਬਦਲਾਵ ਖੋਜਣ ਲਈ ਅੰਗਰੇਜ਼ੀ ਸਰੋਤ ਸਤਰ ਦੀ ਅਨੁਵਾਦਿਤ ਸਮਾਨ ਨਾਲ ਸ਼ਬਦ ਪੱਧਰ 'ਤੇ ਤੁਲਨਾ ਕਰੋ।
- ਘਟਨਾ ਵਿਸ਼ਲੇਸ਼ਣ: ਕਿਸੇ ਆਊਟੇਜ ਤੋਂ ਪਹਿਲਾਂ ਕੀਤੇ ਕੌਂਫਿਗਰੇਸ਼ਨ ਬਦਲਾਵ ਅਲੱਗ ਕਰਨ ਲਈ ਦੋ Kubernetes ਮੈਨੀਫੈਸਟ ਸਨੈਪਸ਼ਾਟਾਂ ਦੀ ਲਾਈਨ ਪੱਧਰ 'ਤੇ ਡਿੱਫ ਕਰੋ।
ਇੱਕ ਕੰਮ ਕੀਤਾ ਉਦਾਹਰਨ
ਇੱਕ ਪੰਜ-ਲਾਈਨ ਸਰਵਰ ਕੌਂਫਿਗ ਲਓ। ਅਸਲ: 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। ਲਾਈਨ ਸ਼ੁੱਧਤਾ ਅਤੇ ਨਾਲ-ਨਾਲ ਦ੍ਰਿਸ਼ ਨਾਲ, ਲਾਈਨ 1 ਖੱਬੇ ਪਾਸੇ ਲਾਲ (host=localhost) ਅਤੇ ਸੱਜੇ ਪਾਸੇ ਹਰੀ (host=db.prod.example.com) ਦਿਖਾਉਂਦੀ ਹੈ, ਲਾਈਨ 4 ਲਾਲ (user=app) ਅਤੇ ਹਰੀ (user=app_prod) ਦਿਖਾਉਂਦੀ ਹੈ, ਅਤੇ ਲਾਈਨਾਂ 2, 3 ਅਤੇ 5 ਦੋਵੇਂ ਪਾਸੇ ਬਦਲੀਆਂ ਬਿਨਾਂ ਰਹਿੰਦੀਆਂ ਹਨ। ਸਾਰ ਪੱਟੀ 2 ਜੋੜ, 2 ਹਟਾਉਣ, 3 ਬਿਨਾਂ-ਬਦਲੇ, ਅਤੇ 60% ਦੀ ਸਮਾਨਤਾ ਦੱਸਦੀ ਹੈ — ਪੰਜਾਂ ਵਿੱਚੋਂ ਤਿੰਨ ਲਾਈਨਾਂ ਰੱਖੀਆਂ ਗਈਆਂ। ਸ਼ਬਦ ਸ਼ੁੱਧਤਾ 'ਤੇ ਬਦਲੋ ਅਤੇ ਡਿੱਫ ਹੋਰ ਕਸ ਜਾਂਦਾ ਹੈ: ਸਿਰਫ਼ ਲਾਈਨਾਂ 1 ਅਤੇ 4 'ਤੇ = ਦੇ ਸੱਜੇ ਪਾਸੇ ਵਾਲੇ ਮੁੱਲ ਜਗ ਉੱਠਦੇ ਹਨ, ਕੁੰਜੀਆਂ ਬਿਨਾਂ-ਬਦਲੇ ਰਹਿੰਦੀਆਂ ਹਨ, ਅਤੇ ਸਮਾਨਤਾ ਲਗਭਗ 85% ਤੱਕ ਚੜ੍ਹ ਜਾਂਦੀ ਹੈ ਕਿਉਂਕਿ LCS ਹੁਣ host, user, ਅਤੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਵਿਰਾਮ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਰੱਖੇ ਹੋਏ ਵਜੋਂ ਗਿਣਦਾ ਹੈ।
ਕੀ ਇਹ ਮੇਰੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਚੱਲਦਾ ਹੈ?
ਹਾਂ। ਸਾਰੀ ਡਿੱਫ ਗਣਨਾ ਪੇਜ ਨਾਲ ਲੋਡ ਹੋਈ ਓਪਨ-ਸੋਰਸ jsdiff ਲਾਇਬ੍ਰੇਰੀ ਵਰਤ ਕੇ ਕਲਾਇੰਟ-ਸਾਈਡ ਚੱਲਦੀ ਹੈ। ਤੁਸੀਂ ਜੋ ਵੀ ਟਾਈਪ, ਪੇਸਟ, ਜਾਂ ਤੁਲਨਾ ਕਰਦੇ ਹੋ ਉਹ ਕਿਸੇ ਵੀ ਸਰਵਰ ਨੂੰ ਨਹੀਂ ਭੇਜਿਆ ਜਾਂਦਾ। ਤੁਸੀਂ ਇਸਨੂੰ ਖ਼ੁਦ ਪਰਖ ਸਕਦੇ ਹੋ: ਬ੍ਰਾਊਜ਼ਰ DevTools ਖੋਲ੍ਹੋ, Network ਟੈਬ 'ਤੇ ਬਦਲੋ, ਲੌਗ ਸਾਫ਼ ਕਰੋ, Compare 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤੁਲਨਾ ਪੜਾਅ ਲਈ ਜ਼ੀਰੋ ਨੈੱਟਵਰਕ ਬੇਨਤੀਆਂ ਚੱਲਦੀਆਂ ਹਨ।
ਸਮਾਨਤਾ ਪ੍ਰਤੀਸ਼ਤ ਦਾ ਕੀ ਮਤਲਬ ਹੈ?
ਸਮਾਨਤਾ ਬਦਲੇ-ਨਹੀਂ ਟੋਕਨ / max(ਅਸਲ ਵਿੱਚ ਕੁੱਲ ਟੋਕਨ, ਬਦਲੇ ਵਿੱਚ ਕੁੱਲ ਟੋਕਨ) ਵਜੋਂ ਗਿਣੀ ਜਾਂਦੀ ਹੈ। 100% ਸਕੋਰ ਦਾ ਮਤਲਬ ਹੈ ਦੋਵੇਂ ਇਨਪੁੱਟ ਤੁਹਾਡੇ ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ ਵਿਕਲਪਾਂ ਲਾਗੂ ਕਰਨ ਤੋਂ ਬਾਅਦ ਇੱਕੋ ਜਿਹੇ ਹਨ। 0% ਦਾ ਮਤਲਬ ਹੈ ਇਨਪੁੱਟਾਂ ਵਿੱਚ ਕੋਈ ਟੋਕਨ ਸਾਂਝਾ ਨਹੀਂ।
ਕੀ ਮੈਂ JSON / YAML / XML ਸਿਮੈਂਟਿਕ ਤੌਰ 'ਤੇ ਡਿੱਫ ਕਰ ਸਕਦਾ ਹਾਂ?
ਇਸ ਸੰਦ ਵਿੱਚ ਨਹੀਂ। ਇਹ ਇੱਕ ਟੈਕਸਟ-ਪੱਧਰੀ ਡਿੱਫ ਹੈ, ਇਸ ਲਈ JSON ਜਾਂ XML ਦੀ ਕੇਵਲ-ਵਾਈਟਸਪੇਸ ਮੁੜ-ਫਾਰਮੈਟਿੰਗ ਅਜੇ ਵੀ ਕਈ ਬਦਲਾਵ ਦਿਖਾਉਂਦੀ ਹੈ ਭਾਵੇਂ ਡਾਟਾ ਤਰਕਪੂਰਨ ਤੌਰ 'ਤੇ ਇੱਕੋ ਜਿਹਾ ਹੋਵੇ। JSON ਵਿੱਚ ਔਬਜੈਕਟ ਕੁੰਜੀਆਂ ਨੂੰ ਮੁੜ-ਕ੍ਰਮਬੱਧ ਕਰਨਾ ਵੀ ਬਦਲਾਵਾਂ ਵਜੋਂ ਦਿਖਦਾ ਹੈ ਭਾਵੇਂ ਜ਼ਿਆਦਾਤਰ ਪਾਰਸਰ ਕੁੰਜੀ ਕ੍ਰਮ ਨੂੰ ਮਹੱਤਵਹੀਣ ਮੰਨਦੇ ਹਨ। ਇੱਕ ਸੱਚੇ ਸਿਮੈਂਟਿਕ ਡਿੱਫ ਲਈ ਜੋ ਪਾਰਸ ਕੀਤੇ ਔਬਜੈਕਟ ਟ੍ਰੀਆਂ ਦੀ ਤੁਲਨਾ ਕਰਦਾ ਹੈ ਅਤੇ ਕੁੰਜੀ ਕ੍ਰਮ ਤੇ ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦਾ ਹੈ, ਅਸੀਂ ਇੱਕ ਸਮਰਪਿਤ JSON Diff ਸੰਦ ਦੀ ਯੋਜਨਾ ਬਣਾ ਰਹੇ ਹਾਂ। ਫ਼ਿਲਹਾਲ, ਇੱਥੇ ਪੇਸਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵੇਂ ਇਨਪੁੱਟ ਉਸੇ ਇੰਡੈਂਟੇਸ਼ਨ ਅਤੇ ਕੁੰਜੀ ਕ੍ਰਮ ਵਿੱਚ ਆਮ ਕਰੋ।
ਯੂਨੀਫਾਈਡ ਬਨਾਮ ਨਾਲ-ਨਾਲ ਦ੍ਰਿਸ਼ ਕਿਵੇਂ ਵੱਖਰੇ ਹਨ?
ਨਾਲ-ਨਾਲ ਦੋ ਕਾਲਮ ਰੈਂਡਰ ਕਰਦਾ ਹੈ: ਖੱਬੇ ਪਾਸੇ ਅਸਲ ਅਤੇ ਸੱਜੇ ਪਾਸੇ ਬਦਲਿਆ ਹੋਇਆ ਵਰਜ਼ਨ, ਖੱਬੇ ਪਾਸੇ ਹਟਾਈਆਂ ਲਾਈਨਾਂ ਲਾਲ ਵਿੱਚ ਉਜਾਗਰ ਅਤੇ ਸੱਜੇ ਪਾਸੇ ਜੋੜੀਆਂ ਲਾਈਨਾਂ ਹਰੀਆਂ ਵਿੱਚ ਉਜਾਗਰ। ਬਿਨਾਂ-ਬਦਲੀਆਂ ਲਾਈਨਾਂ ਦੋਵੇਂ ਕਾਲਮਾਂ ਵਿੱਚ ਇੱਕੋ ਕਤਾਰ 'ਤੇ ਅਲਾਈਨ ਹੋ ਕੇ ਦਿਸਦੀਆਂ ਹਨ। ਯੂਨੀਫਾਈਡ ਇੱਕ ਇਕੱਲਾ ਕਾਲਮ ਰੈਂਡਰ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਹਟਾਈਆਂ ਲਾਈਨਾਂ ਲਈ ਇੱਕ − ਅਗੇਤਰ ਅਤੇ ਲਾਲ ਪਿਛੋਕੜ ਅਤੇ ਜੋੜੀਆਂ ਲਾਈਨਾਂ ਲਈ ਇੱਕ + ਅਗੇਤਰ ਅਤੇ ਹਰਾ ਪਿਛੋਕੜ ਹੁੰਦਾ ਹੈ — ਉਹੀ ਲੇਆਉਟ ਜੋ git diff ਤੁਹਾਡੇ ਟਰਮੀਨਲ 'ਤੇ ਪ੍ਰਿੰਟ ਕਰਦਾ ਹੈ। ਯੂਨੀਫਾਈਡ ਉਦੋਂ ਵਰਤੋ ਜਦੋਂ ਤੁਸੀਂ ਨਤੀਜੇ ਨੂੰ ਇੱਕ ਪੈਚ ਫ਼ਾਈਲ ਵਜੋਂ ਕਾਪੀ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਜਾਂ ਇਸਨੂੰ ਕੋਡ ਰਿਵਿਊ ਥ੍ਰੈੱਡ ਵਿੱਚ ਪੇਸਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ। ਨਾਲ-ਨਾਲ ਉਦੋਂ ਵਰਤੋ ਜਦੋਂ ਕੀ ਨੇ ਕੀ ਨੂੰ ਬਦਲਿਆ ਉਸਦੀ ਦ੍ਰਿਸ਼ਟੀਗਤ ਅਲਾਈਨਮੈਂਟ ਕੱਚੇ ਪੈਚ ਟੈਕਸਟ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਮਾਇਨੇ ਰੱਖਦੀ ਹੈ।
ਖੱਬੇ ਪਾਸੇ ਅਸਲ ਪੇਸਟ ਕਰੋ, ਸੱਜੇ ਪਾਸੇ ਬਦਲਿਆ ਹੋਇਆ ਵਰਜ਼ਨ, ਇੱਕ ਦ੍ਰਿਸ਼ ਅਤੇ ਇੱਕ ਸ਼ੁੱਧਤਾ ਚੁਣੋ, ਅਤੇ ਤੁਲਨਾ ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ ਦਿਸ ਪੈਂਦੀ ਹੈ। Live ਮੋਡ ਚਾਲੂ ਕਰੋ ਅਤੇ ਜਿਵੇਂ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਪਾਸੇ ਸੰਪਾਦਨ ਕਰਦੇ ਹੋ ਡਿੱਫ ਹਰ ਕੀਸਟ੍ਰੋਕ 'ਤੇ ਮੁੜ-ਚੱਲਦਾ ਹੈ। ਨਤੀਜੇ ਨੂੰ ਇੱਕ ਮਿਆਰੀ ਯੂਨੀਫਾਈਡ .patch ਫ਼ਾਈਲ ਵਜੋਂ ਡਾਊਨਲੋਡ ਕਰੋ ਜਿਸਨੂੰ git apply ਸਿੱਧਾ ਖਪਤ ਕਰਦਾ ਹੈ। ਕੋਈ ਅਪਲੋਡ ਨਹੀਂ, ਕੋਈ ਖਾਤਾ ਨਹੀਂ, ਕੋਈ ਵਿਕਰੇਤਾ API ਕੁੰਜੀ ਨਹੀਂ, ਕੋਈ ਕੋਟਾ ਨਹੀਂ।