আমি আজ বিস্মিত ছিলাম কিভাবে গিট তার মেটাডেটাটির সংখ্যাগরিষ্ঠতা নিশ্চিত করে এবং আমি যা দেখেছি তাতে বিস্মিত। আমি পরীক্ষার জন্য নিম্নলিখিত সহজ সেটআপ ব্যবহার:
- দুই কাজ রিপোজিটরি, বলা হয়
x
এবংy
- একটি বেয়ার সংগ্রহস্থল, বলা হয়
xy.git
সুতরাং, প্রাথমিকভাবে x
এবং y
থেকে ধাক্কা এবং pulling হয় x.git
এবং সবকিছু ঠিক সূক্ষ্ম কাজ করে। এখন, আসুন মেটাডেটা বস্তুর একটি বলি ( .git/objects/...
) মধ্যে x.git
যাই হোক না কেন কারণে দূষিত হয়ে যায় (আপনার প্রিয় র্যান্ডম ঘটনা নির্বাচন করুন)।
আমি আসলে ধীরে ধীরে ধীরে ধীরে ধাক্কা মেরে বা টানতে কিছু ভাঙ্গব, কিন্তু আমার অবাক, সবকিছু ঠিকঠাক কাজ করতে লাগলো। আরো commits, আরো ধাক্কা এবং pulling, কোন সমস্যা। প্রথমবারের মতো কিছুটা দূষিত হওয়ার খবর পাওয়া গিয়েছিল যখন আমি অপ্রয়োজনীয় অবস্থায় আমার ক্লোনটি রেখে, বেয়ার রিপোজিটরি থেকে অন্য কোনও কাজের সংগ্রহস্থল ক্লোন করার চেষ্টা করলাম।
এখন আমি মনে করি এটি খারাপ নয়, কারণ গিট এর স্থাপত্যের ধন্যবাদ, আমি কেবল সবচেয়ে খারাপ ক্ষেত্রে ন্যূনতম সংগ্রহস্থলটি ডাম্প করতে পারি এবং আমার কাজের সেটগুলির মধ্যে থেকে সমস্ত ইতিহাসের সাথে এটি পুনরায় তৈরি করতে পারি। কিন্তু না. যেকোন নোটিশ ছাড়াই, দূষিত ফাইলটি কাজীকৃত সংগ্রহস্থলগুলিতে টেনে আনতে তার পথ তৈরি করেছে, এটি তাদের কাছ থেকে একটি নতুন খালি সংগ্রহস্থান ক্লোন করা অসম্ভব করে তোলে।
এটি কেবল তখনই ঘটে না যখন আমি ন্যাং সংগ্রহস্থল থেকে একটি দূষিত ফাইল দিয়ে শুরু করি, এটি এমনভাবে একটি দুর্নীতিগ্রস্ত ফাইল থেকে একটি বিরক্তিকর ফাইলটিকে এই ভাবে পরিচয় করানো সম্ভব।
নিশ্চিতভাবে, কেউ হয়তো অন্য উপায়ে এটি ঠিক করতে সক্ষম হতে পারে, তবে আমি এখনও অবাক হয়েছি (এবং কিছুটা উদ্বিগ্ন) এটির সাথে কাজ করার জন্য প্রত্যেকের জন্য সংগ্রহস্থলটি জগাখিচুড়ি করা কতটা সহজ মনে হয়। বিশেষত যেহেতু পরবর্তী সময়ে কেউ ক্লোন করার চেষ্টা করলে ত্রুটিটি অচেনা থাকে। কোথাও, কোথাও, এই বিরুদ্ধে চেক করা উচিত নয়?
যে কেউ এখানে পুনরুত্পাদন করা চেষ্টা করতে ইচ্ছুক? আমি গিট সংস্করণ 2.7.4 সঙ্গে পরীক্ষা।
এ ধরনের দুর্নীতির বিরুদ্ধে কীভাবে তদন্ত করা যায় সে বিষয়ে কোন পরামর্শ অত্যন্ত স্বাগত।