গিট ২.৫১ মূল কর্মক্ষমতা উন্নতি এবং নতুন বৈশিষ্ট্য সহ এসেছে

গিট 2.51

দুই মাস ধরে তীব্র পরিশ্রমের পর, উন্নয়ন সম্প্রদায় গিট গিট সংস্করণ 2.51 চালু করেছে, একটি আপডেট যা এটি ৫০৬টি পরিবর্তন একত্রিত করে, যেখানে ৯১ জন ডেভেলপার অংশগ্রহণ করেছিলেন, যার মধ্যে ২১ জন প্রথমবারের মতো অবদান রেখেছেন।

এই রিলিজে কর্মক্ষমতা উন্নত করার জন্য এবং সংগ্রহস্থল ব্যবস্থাপনাকে সহজ করার জন্য ডিজাইন করা উন্নতিগুলি উপস্থাপন করা হয়েছে, যার মধ্যে রয়েছে git-push এবং git-fetch-এর জন্য কর্মক্ষমতা অপ্টিমাইজেশন, সেইসাথে নতুন 3.x শাখার দিকে অগ্রসর হওয়া বেশ কয়েকটি পরিবর্তন।

গিট 2.51 হাইলাইট

গিট ২.৫১ এর অন্যতম আকর্ষণ হলো গিট পুশ এবং গিট ফেচ কমান্ড অপ্টিমাইজ করা হচ্ছে প্রচুর সংখ্যক রেফারেন্স সহ সংগ্রহস্থলে। এই উন্নতির মূল চাবিকাঠি হল ব্যাচ আপডেট।, যা একক লেনদেনে একাধিক লিঙ্ক প্রক্রিয়াকরণের পরিবর্তে পৃথকভাবে প্রক্রিয়া করে।

এই অপ্টিমাইজেশনের জন্য ধন্যবাদ, রিফটেবল ব্যাকএন্ড এখন ঐতিহ্যবাহী ফাইল ব্যাকএন্ডকে ছাড়িয়ে যায়।১০,০০০ পর্যন্ত রেফারেন্স ধারণকারী রিপোজিটরির পরীক্ষায়, রিফেটেবলের জন্য গিট ফেচ পারফরম্যান্স ২২ গুণ এবং ফাইলের জন্য ১.২৫ গুণ বৃদ্ধি পেয়েছে, যেখানে গিট পুশ যথাক্রমে ১৮ গুণ এবং ১.২১ গুণ উন্নত হয়েছে।

আরেকটি গুরুত্বপূর্ণ উদ্ভাবন হল iতথাকথিত ক্রাফ্ট প্যাকেজের প্রবর্তন, শাখা বা ট্যাগের সাথে সংযুক্ত নয় এমন অ্যাক্সেসযোগ্য বস্তু সংরক্ষণের জন্য ডিজাইন করা হয়েছে। এই বস্তুগুলি, যা আগে ছড়িয়ে ছিটিয়ে ছিল, এখন আলাদা প্যাকেজিংয়ে পরিচালনা করা যেতে পারেs, যা তাদের নিয়ন্ত্রণ করা সহজ করে তোলে এবং মাল্টি-প্যাকেজ ইনডেক্সের (MIDX) আকার হ্রাস করে।

সঙ্গে সঙ্গে নতুন রিপ্যাক। MIDXMustContainCruft সেটিং, Git এই বস্তুগুলিকে প্রধান সূচকে অন্তর্ভুক্ত করা এড়িয়ে চলেGitHub-এর পরীক্ষায়, এই কনফিগারেশনটি সূচকের আকার 38% কমিয়েছে, লেখার গতি 35% কমিয়েছে এবং পড়ার ক্ষমতা 5% উন্নত করেছে।

বস্তু প্যাকেজিংয়ের নতুন পদ্ধতি

El git pack-objects কমান্ডে –path-walk বিকল্পটি অন্তর্ভুক্ত করা হয়েছে, যা একটি উদ্ভাবনী পদ্ধতি প্রবর্তন করে প্যাকেজিং ফাইল পুনর্গঠন করতে। হ্যাশের উপর ভিত্তি করে অবজেক্ট প্রক্রিয়াকরণের পরিবর্তে, গিট এখন তাদের ফাইল পাথের উপর ভিত্তি করে সেগুলির মাধ্যমে পুনরাবৃত্তি করতে পারে, একই অবস্থান ভাগ করে নেওয়া বস্তুগুলিকে একসাথে প্যাক করতে পারে। এই পদ্ধতিটি অবজেক্টগুলিকে প্রাক-সাজানোর প্রয়োজনীয়তা দূর করে এবং এর ফলে ছোট, আরও দক্ষ প্যাকিং ফাইল তৈরি হয়।

এই সংস্করণের সাথেও গিট স্ট্যাশের সাহায্যে তৈরি ওয়ার্কিং ট্রি স্টেট এবং ইনডেক্স বিনিময়ের জন্য একটি নতুন ফর্ম্যাট প্রমিত করা হয়েছে।। এখন শাখা বা ট্যাগের মতোই স্ট্যাশ রপ্তানি এবং আমদানি করা সম্ভব, যার ফলে এক সিস্টেম থেকে অন্য সিস্টেমে রাজ্য স্থানান্তর করা সহজ হয়ে ওঠে।

উদাহরণস্বরূপ:

git stash export --to-ref refs/stashes/mi-stash git push origin refs/stashes/mi-stash git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/mi-stash

ক্লাসিক কমান্ডের উন্নতি

বিভিন্ন গিট কমান্ডগুলি প্রাসঙ্গিক আপডেট পেয়েছে:

  • git cat-file এখন অনুপস্থিত বস্তু এবং সাবমডিউল রিপোর্ট করে, কেবল "অনুপস্থিত" চিহ্নিত করার পরিবর্তে শনাক্তকারী দেখায়।
  • ব্লুম ফিল্টার অপ্টিমাইজেশনের সুবিধা থেকে git log উপকৃত হয়, যা একাধিক ফাইল পাথের মাধ্যমে অনুসন্ধানের গতি বাড়ায়।
  • ২০১৯ সাল থেকে পরীক্ষামূলকভাবে বিবেচিত গিট সুইচ এবং গিট রিস্টোর কমান্ডগুলি অবশেষে গিট চেকআউটের আধুনিক বিকল্প হিসেবে স্থিতিশীল হয়েছে।
  • git whatchanged কমান্ড, যা git log –raw এর সমতুল্য, অবচিত এবং Git 3.0 এ সরানো হবে।
  • git for-each-ref -start-after বিকল্পটি পায়, যা -count এর সাথে একসাথে আউটপুটের পৃষ্ঠাঙ্কন করার অনুমতি দেয়।
  • git merge এবং git pull-এ এখন –compact-summary বিকল্পটি অন্তর্ভুক্ত করা হয়েছে, যা আরও সংক্ষিপ্ত সারাংশ বিন্যাস প্রদান করে।

C99 সমর্থন এবং নতুন অবদানের নিয়ম

গিট তার কোডকে C9 স্ট্যান্ডার্ডের বৈশিষ্ট্যের সাথে খাপ খাইয়ে নেওয়া অব্যাহত রেখেছে।৯. যদিও ২০২১ সাল থেকে একটি সামঞ্জস্যপূর্ণ কম্পাইলার প্রয়োজন, ডেভেলপাররা সতর্কতার সাথে এমন কম্পাইলারগুলির সাথে সামঞ্জস্য বজায় রাখার চেষ্টা করছে যারা এটি আংশিকভাবে বাস্তবায়ন করে।

এছাড়াও, অবদান নীতিতে একটি উল্লেখযোগ্য পরিবর্তন আনা হয়েছে: প্যাচগুলি এখন ছদ্মনামে জমা দেওয়া যাবে, লিনাক্স কার্নেলের নিয়মের সাথে সামঞ্জস্যপূর্ণ একটি সিদ্ধান্ত এবং অবদানকারীদের আরও নমনীয়তা প্রদানের জন্য ডিজাইন করা হয়েছে।

Git 3.0 এর জন্য অপেক্ষা করছি

El ডেভেলপমেন্ট টিম রোডম্যাপটি Git 3.0 তেও আপডেট করেছে।, যেখানে দুটি গুরুত্বপূর্ণ পরিবর্তন স্পষ্টভাবে দেখা যায়: অবজেক্ট আইডেন্টিফায়ার হিসেবে SHA-256-এর ডিফল্ট ব্যবহার এবং শাখা এবং ট্যাগ রেফারেন্স সংরক্ষণের জন্য রিফটেবল ফর্ম্যাট গ্রহণ। এই উন্নতিগুলির লক্ষ্য ক্রমবর্ধমান বৃহৎ এবং জটিল সংগ্রহস্থলগুলিতে নিরাপত্তা এবং দক্ষতা উন্নত করা।

উৎস: https://lore.kernel.org