দ্রষ্টব্য: আপনি git rev-parse --short
সবচেয়ে স্বল্পতম এবং তবুও অনন্য SHA1 জানতে চাইতে পারেন ।
" নিয়মিত হ্যাশ থেকে গিট শর্ট হ্যাশ পান " দেখুন
git rev-parse --short=4 921103db8259eb9de72f42db8b939895f5651489
92110
যেমন আপনি আমার উদাহরণে দেখতে পারেন SHA1 এর দৈর্ঘ্য 5 টি এমনকি আমি 4 এর দৈর্ঘ্য নির্দিষ্ট করে থাকলেও।
বড় রেপোসের জন্য , ২০১০ সাল থেকে enough যথেষ্ট নয়, এবং লিনাস টরভাল্ডস নিজেই dce9648 প্রতিশ্রুতিবদ্ধ (গিট 1.7.4.4, অক্টোবর 2010):
7 এর ডিফল্টটি গিট বিকাশের মোটামুটি প্রথম থেকেই আসে, যখন সাতটি হেক্স সংখ্যা অনেক বেশি ছিল (এটি প্রায় 250+ মিলিয়ন হ্যাশ মানকে অন্তর্ভুক্ত করে)।
তারপরে আমি ভেবেছিলাম যে 65 কে রিভিশনগুলি অনেক বেশি ছিল (এটি আমরা বিকে তে আঘাত করতে যাচ্ছিলাম), এবং প্রতিটি সংশোধন প্রায় 5-10 নতুন অবজেক্ট বা তাই হতে পারে, তাই মিলিয়ন অবজেক্ট একটি বিশাল সংখ্যা ছিল।
(বিকে = বিটকিপার)
আজকাল, কার্নেলটি এমনকি সবচেয়ে বড় গিট প্রকল্প নয়, এমনকি কার্নেলের প্রায় ২২০ কে পুনর্বিবেচনা রয়েছে ( বিকে গাছের তুলনায় আরও বড় আকারের) এবং আমরা দুই মিলিয়ন অবজেক্টের কাছে পৌঁছে যাচ্ছি।
এই মুহুর্তে, সাতটি হেক্স অঙ্কগুলি এখনও তাদের বেশিরভাগের জন্যই অনন্য, তবে আমরা যখন বস্তুর সংখ্যা এবং হ্যাশের আকারের মধ্যে মাত্রার দুটি পার্থক্যের মাত্র দুটি আদেশের কথা বলছি তখন কাটা হ্যাশ মানগুলির সংঘর্ষ হবে ।
এটি এখন অবাস্তব কাছেও বেশি নয় - এটি সর্বদা ঘটে।
আমরা উভয় ডিফল্ট abbrev যে অবাস্তব ছোট ছিল বৃদ্ধি, should এবং মানুষ Git কনফিগ ফাইলে প্রতি প্রকল্পের তাদের নিজস্ব ডিফল্ট সেট জন্য একটি উপায় যোগ ।
core.abbrev
দৈর্ঘ্যের অবজেক্টের নাম সংক্ষেপিত হয় সেট করুন।
যদি অনির্দিষ্ট করা হয়, অনেক কমান্ড সংক্ষিপ্ত 7 টি হেক্সডিজিটকে সংক্ষিপ্ত করে, যা সংক্ষিপ্ত অবজেক্ট নামগুলির পক্ষে পর্যাপ্ত দীর্ঘ সময়ের জন্য অনন্য থাকতে পারে না।
environment.c
:
int minimum_abbrev = 4, default_abbrev = 7;
দ্রষ্টব্য: মার্কো.এম দ্বারা নীচে মন্তব্য করা হয়েছে , কমিট a71f09f তে একই গিট 1.7.4.4 এ core.abbrevLength
নতুন নামকরণ করা core.abbrev
হয়েছে
পুনরায় নামকরণ core.abbrevlength
করুনcore.abbrev
এটি --abbrev=$n
সর্বোপরি কমান্ড লাইন বিকল্পের সাথে সম্পর্কিত।
আরও সাম্প্রতিককালে, লিনাস যোগ e6c587c কমিট (গীত 2.11 জন্য, Q4 ই 2016):
(উল্লেখিত হিসাবে Matthieu মধ্যে Moy এর উত্তর )
মোটামুটি প্রথম দিনগুলিতে আমরা কোনওভাবে অবজেক্টের নামগুলি 7-হেক্সডিজিটগুলিতে সংক্ষেপে সংক্ষিপ্ত করার সিদ্ধান্ত নিয়েছিলাম, তবে প্রকল্পগুলি বাড়ার সাথে সাথে আগের দিনগুলিতে তৈরি হওয়া এইরকম একটি সংক্ষিপ্ত অবজেক্টের নাম আরও বেশি দেখা যায় এবং লগ বার্তায় রেকর্ড করা আর অনন্য থাকে না।
বর্তমানে লিনাক্স কার্নেল প্রকল্পের জন্য 11 থেকে 12 হেক্সডিজিট প্রয়োজন, অন্যদিকে গিটের কাছে 10 টি হেক্সডিজিট প্রয়োজন যা তাদের কাছে থাকা বস্তুগুলি স্বতন্ত্ররূপে সনাক্ত করতে পারে, যখন অনেকগুলি ছোট প্রকল্প এখনও মূল 7-হেক্সডিজিট ডিফল্টের সাথে সূক্ষ্ম হতে পারে। এক-আকারের সমস্ত প্রকল্পে খাপ খায় না।
একটি প্রক্রিয়া প্রবর্তন করুন, যেখানে আমরা ডিফল্ট সেটিংসের সাথে কোনও অবজেক্টের নাম সংক্ষিপ্ত করতে এবং সংগ্রহস্থলের জন্য একটি বুদ্ধিমান ডিফল্ট নিয়ে আসা প্রথম অনুরোধের ভিত্তিতে সংগ্রহস্থলের অবজেক্টগুলির সংখ্যা অনুমান করি। প্রত্যাশার উপর ভিত্তি করে আমরা 2^(2N)
প্রথম এন বিটগুলিতে সংক্ষিপ্ত অবজেক্টের নাম ব্যবহার করার সময় অবজেক্টগুলির সাথে একটি সংগ্রহস্থলগুলিতে সংঘর্ষের মুখোমুখি হতে দেখি, সংগ্রহস্থলের অবজেক্টের সংখ্যা কভার করার জন্য পর্যাপ্ত সংখ্যক হেক্সডিজিট ব্যবহার করুন।
আমরা সংক্ষিপ্ত নামের সাথে যুক্ত প্রতিটি হেক্সডিজিট (4-বিট) আমাদের সংগ্রহস্থলটিতে চারটি বার (2-বিট) অনেকগুলি বস্তু রাখতে সক্ষম করে।
দেখুন e6c587c কমিট দ্বারা (01 অক্টোবর 2016) লিনাস টোরভাল্ডস ( torvalds
) ।
দেখুন কমিট 7b5b772 , কমিট 65acfea (01 অক্টোবর 2016) দ্বারা junio সি Hamano ( gitster
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে bb188d0 কমিট , 03 অক্টোবর 2016)
এই নতুন সম্পত্তিটির (SHA1 সংক্ষিপ্ত মানের জন্য যুক্তিযুক্ত ডিফল্ট অনুমান করা) গিটার কীভাবে মুক্তির জন্য তার নিজস্ব সংস্করণ নম্বর গণনা করবে তার সরাসরি প্রভাব রয়েছে ।