ফাইল ডুপ্লিকেট না করেই দক্ষ ভার্সন কন্ট্রোল তৈরি করা

প্রতিটি ভার্সন বা ফোর্কের জন্য ফাইলের সম্পূর্ণ কপি সংরক্ষণ করা জায়গা অপচয় করে। যদি দশটি ফাইল বিশিষ্ট একটি প্রজেক্টের মাত্র একটি লাইন পরিবর্তন করেন, তবে আপনার দশটি ফাইলই পুনরায় সেভ করার প্রয়োজন নেই।

আমার LaTeX Writer প্রজেক্টটি তৈরির সময় আমি এই সমস্যার সম্মুখীন হয়েছিলাম। উচ্চ স্টোরেজ খরচ ছাড়াই ভার্সন কন্ট্রোল এবং প্রজেক্ট ফোর্কিং পরিচালনা করার একটি উপায় আমার প্রয়োজন ছিল।

আমি লক্ষ্য করলাম GitHub কীভাবে কাজ করে। আপনি প্রতিবার পরিবর্তন করার সময় GitHub সম্পূর্ণ রিপোজিটরি সংরক্ষণ করে না। এটি কন্টেন্ট আলাদাভাবে সংরক্ষণ করে এবং ফাইল ও কমিটগুলোকে লিঙ্ক করার জন্য রেফারেন্স ব্যবহার করে।

আমি তিনটি প্রধান উপাদানের মাধ্যমে আমার সিস্টেমটি তৈরি করেছি:

সিস্টেমটি কন্টেন্ট হ্যাশিংয়ের (content hashing) মাধ্যমে কাজ করে। যখন আপনি একটি ফাইল সেভ করেন, সিস্টেমটি কন্টেন্টের ওপর ভিত্তি করে একটি ইউনিক ID তৈরি করে। যদি সেই কন্টেন্টটি আগে থেকেই থেকে থাকে, তবে সিস্টেমটি বিদ্যমান Blob-টি পুনরায় ব্যবহার করে। এটি নতুন কোনো Blob তৈরি করে না।

এই পদ্ধতিটি ফোর্কিংকে সহজ এবং সাশ্রয়ী করে তোলে। যখন আপনি একটি প্রজেক্ট ফোর্ক করেন:

ফোর্কিংয়ের সময় কোনো প্রকৃত ফাইল কন্টেন্ট কপি করা হয় না। আপনি কেবল ছোট metadata রেকর্ডগুলো ডুপ্লিকেট করেন।

যখন আপনি একটি ফোর্ক এডিট করেন, প্রক্রিয়াটি দক্ষ থাকে:

এই পদ্ধতিটি বেশ কিছু সুবিধা প্রদান করে:

আপনি অতিরিক্ত স্টোরেজ খরচ ছাড়াই GitHub-এর মতো কার্যকারিতা পাবেন।

উৎস: https://dev.to/prashant_patil_49/building-github-inspired-version-control-and-forking-without-duplicating-project-files-5aap