গিট ২.৫০: বৃহৎ সংগ্রহস্থল এবং আরও অনেক কিছুর জন্য কর্মক্ষমতা উন্নতি

git-2.50

কয়েকদিন আগেই ঘোষণা করা হয় গিট ২.৫০ প্রকল্পের নতুন সংস্করণ প্রকাশ, ৬০০ টিরও বেশি পরিবর্তন প্রবর্তন করা হচ্ছে একটি সক্রিয় সম্প্রদায় দ্বারা পরিচালিত যেখানে এবার ৩৫ জন নতুন অবদানকারী সহ ৯৮ জন ডেভেলপার অন্তর্ভুক্ত ছিল।

গিট ২.৫০-এর এই নতুন সংস্করণটি নতুন কমান্ড (গিট-ডিফ-পেয়ার) এর একীকরণ, পরিষ্কার, ফিল্টারিং এবং রক্ষণাবেক্ষণের জন্য নতুন ফাংশন, রিকার্সিভ মার্জ ইঞ্জিনকে ORT দিয়ে প্রতিস্থাপন, সেইসাথে কর্মক্ষমতা উন্নতি এবং বাগ সংশোধনের মাধ্যমে তুলে ধরা হয়েছে।

গিট 2.50 হাইলাইট

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

নতুন সংস্করণের সাথে, গিট আপনাকে এই ক্রাফ্ট প্যাকগুলিকে কয়েকটি ছোট ফাইলে বিভক্ত করার অনুমতি দেয়।, যা ডিস্কের ব্যবহার হ্রাস করে এবং বাল্ক অপারেশনের জন্য ইনপুট/আউটপুট কর্মক্ষমতা উন্নত করে। এছাড়াও, sএবং –combine-cruft-below-size অপশনটি প্রবেশ করান, যার অনুমতি দেয় ছোট প্যাকেজগুলিকে আরও নমনীয়ভাবে একত্রিত করুন পূর্ববর্তী –max-cruft-size বিকল্পের তুলনায়, সম্মিলিত ফাইলের আকারের উপর কোনও সীমা আরোপ না করে। এই নতুন বৈশিষ্ট্যটি বিশেষ করে একাধিক প্যাকেজ জুড়ে ছড়িয়ে থাকা অনাথ বস্তু সহ প্রকল্পগুলিতে কার্যকর।

বৃহৎ আকারের সংগ্রহস্থলের লক্ষ্যে আরেকটি উন্নতি হল জন্য পরীক্ষামূলক সমর্থন এর ক্রমবর্ধমান আপডেট MIDX সূচক যা তারা বস্তু সম্পর্কে তথ্য পৃথক স্তরে সংরক্ষণ করে বিটম্যাপ ফাইল ব্যবহার করে, যা নতুন কমিট যোগ করার সাথে সাথে দ্রুত আপডেটের সুযোগ করে দেয়। এই অগ্রগতি বৃহৎ সংগ্রহস্থলের জন্য অত্যন্ত গুরুত্বপূর্ণ যেখানে মেটাডেটা সম্পূর্ণরূপে পুনর্নির্মাণ না করে দ্রুত ইনডেক্সিং অপারেশনের প্রয়োজন হয়।

ORT দিয়ে রিকার্সিভ মার্জ ইঞ্জিনের সম্পূর্ণ প্রতিস্থাপন

গিট 2.50 একটি বড় পরিবর্তন এনেছে রিকার্সিভ ফিউশন ইঞ্জিনের স্থায়ী অপসারণ ঐতিহ্যবাহী। পরিবর্তে, ORT এর ব্যবহার একত্রিত করা হয়েছেজাতিসংঘ আরও আধুনিক, রক্ষণাবেক্ষণযোগ্য এবং দক্ষ ফিউশন ইঞ্জিন। ORT কেবল আরও সুনির্দিষ্ট দ্বন্দ্ব বিশ্লেষণই প্রদান করে না, বরং অতিরিক্ত বস্তু তৈরি না করেই মার্জ সম্ভব কিনা তা যাচাই করার সুযোগ দেয়। অধিকন্তু, মার্জ-ট্রি কমান্ডে এখন রিপোজিটরি পরিবর্তন না করেই নীরব মার্জ চেকার হিসেবে ব্যবহারের জন্য একটি –quiet বিকল্প অন্তর্ভুক্ত রয়েছে।

gitt-diff-pairs: স্কেলেবিলিটি সমস্যার সমাধান

কোড পর্যালোচনা নিঃসন্দেহে আধুনিক সহযোগিতামূলক উন্নয়নের অন্যতম স্তম্ভ, এবং সংশোধনের মধ্যে পার্থক্য বা পার্থক্য এই প্রক্রিয়ায় গুরুত্বপূর্ণ ভূমিকা পালন করে। Git 2.50 এর আগমনের সাথে সাথে, স্কেলেবিলিটির জন্য ডিজাইন করা একটি সমাধান চালু করা হয়েছে: নতুন git-diff-pairs কমান্ড।

ঐতিহ্যগতভাবে, দুটি সংস্করণের মধ্যে তুলনা করার জন্য আপনি একটি কমান্ড ব্যবহার করেন যেমন:

git diff HEAD~1 HEAD

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

এই কারণেই git-diff-pairs বিশেষভাবে git diff-tree এর আউটপুট থেকে সরাসরি কাঁচা ইনপুট গ্রহণ করার জন্য এবং সংশ্লিষ্ট প্যাচগুলি দক্ষতার সাথে এবং নির্ভুলভাবে তৈরি করার জন্য ডিজাইন করা হয়েছিল।

ব্যবহারটি এত সহজ যে:

git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z

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

পরিষ্কার, ফিল্টারিং এবং রক্ষণাবেক্ষণের জন্য নতুন বৈশিষ্ট্য

Git 2.50-এ রিপোজিটরি রক্ষণাবেক্ষণ উন্নত করার জন্য ডিজাইন করা বেশ কয়েকটি অতিরিক্ত সরঞ্জাম রয়েছে:

  • কমান্ডটি যোগ করা হয়েছে। গিট রিফ্লগ ড্রপ, যা আপনাকে একটি নির্দিষ্ট শাখার জন্য রিফ্লগ সম্পূর্ণরূপে মুছে ফেলতে দেয়, যখন আপনার আর পূর্ববর্তী রেফারেন্সগুলি বজায় রাখার প্রয়োজন হয় না তখন আপনার কাজের ইতিহাস পরিষ্কার করার জন্য আদর্শ।
  • বিকল্প - ফিল্টার cat-file –batch এখন git-এ উপলব্ধ, যা আপনাকে অবজেক্টের ধরণ অনুসারে ফলাফল ফিল্টার করতে দেয়।

এছাড়াও, বেশ কিছু অভ্যন্তরীণ অপ্টিমাইজেশনও হাইলাইট করা হয়েছে:

  • প্রিফিক্স ক্যাশিং এবং অপ্রয়োজনীয় চেক হ্রাস সহ প্রতীকী লিঙ্কগুলির উন্নত ব্যবহার।
  • ডকুমেন্টেশন এবং টেস্ট স্ক্রিপ্টগুলিতে পার্ল নির্ভরতা অপসারণ, শেল ফাংশন বা সি বাস্তবায়ন দিয়ে প্রতিস্থাপন, ন্যূনতম কনফিগারেশন সহ সিস্টেমগুলিতে কম্পাইল করা সহজ করে তোলে।
  • একটি নিয়ামক সহ ইউজারডিফ .ini ফাইলের পার্থক্য বিশ্লেষণের জন্য।
  • আউটলুকের মতো SMTP সার্ভারের সাথে git send-email কমান্ডের উন্নত সামঞ্জস্য।

পরিশেষে, আপনি যদি এটি সম্পর্কে আরও জানতে আগ্রহী হন, আপনি বিশদ বিবরণের সাথে পরামর্শ করতে পারেন নিম্নলিখিত লিঙ্ক.