গিট বইতে কোন সূচক অন্তর্ভুক্ত রয়েছে সে সম্পর্কে একটি নিবন্ধ রয়েছে :
সূচকটি একটি বাইনারি ফাইল (সাধারণত এটিতে রাখা হয় .git/index
) যে কোনও একটি ব্লব অবজেক্টের অনুমতি এবং SHA1 সহ প্রতিটি নামের তালিকা অনুসারে বাছাই করা তালিকা থাকে; git ls-files
আপনাকে সূচীর বিষয়বস্তু প্রদর্শন করতে পারে:
$ git ls-files --stage
100644 63c918c667fa005ff12ad89437f2fdc80926e21c 0 .gitignore
100644 5529b198e8d14decbe4ad99db3f7fb632de0439d 0 .mailmap
উদ্দীপক Git সমস্যা যে কাঠামো আরো কিছু বিবরণ দেয়:
সূচকটি গিটের মধ্যে অন্যতম গুরুত্বপূর্ণ ডেটা স্ট্রাকচার।
এটি পাথ এবং তাদের অবজেক্টের নামের তালিকা রেকর্ড করে একটি ভার্চুয়াল ওয়ার্কিং ট্রি রাজ্যের প্রতিনিধিত্ব করে এবং পরবর্তী বৃক্ষ প্রতিশ্রুতিবদ্ধ হওয়ার জন্য লিখিতভাবে স্টেজিং অঞ্চল হিসাবে কাজ করে।
রাষ্ট্রটি এই অর্থে "ভার্চুয়াল" যে এটি কার্যকরী গাছের ফাইলগুলির সাথে মেলে না এবং প্রায়ই হয় না।
আরও দেখতে, সিএফ। " গিট / গিট / ডকুমেন্টেশন / টেকনিক্যাল / ইনডেক্স-ফরম্যাট.txt ":
গিট ইনডেক্স ফাইলের নিম্নলিখিত ফর্ম্যাট রয়েছে
সমস্ত বাইনারি নম্বর নেটওয়ার্ক বাইট ক্রমে রয়েছে।
সংস্করণ 2 অন্যথায় বর্ণিত না হলে এখানে বর্ণিত হয়েছে।
- সমন্বিত একটি 12-বাইট শিরোনাম:
- 4-বাইট স্বাক্ষর :
স্বাক্ষরটি হ'ল ' D
', ' I
', ' R
', ' C
'} (এর অর্থ " dircache
" ")
- 4-বাইট সংস্করণ নম্বর :
বর্তমান সমর্থিত সংস্করণগুলি 2, 3 এবং 4।
- সূচি প্রবেশের 32-বিট সংখ্যা।
- সাজানো বেশ কয়েকটি সূচক এন্ট্রি ।
- এক্সটেনশনগুলি :
এক্সটেনশনগুলি স্বাক্ষর দ্বারা চিহ্নিত করা হয়।
গিট না বুঝতে পারলে alচ্ছিক এক্সটেনশনগুলি উপেক্ষা করা যেতে পারে।
গিট বর্তমানে ক্যাশেড ট্রি সমর্থন করে এবং এক্সটেনশনগুলি পূর্বাবস্থায়িত করুন।
- 4-বাইট এক্সটেনশন স্বাক্ষর। যদি প্রথম বাইটটি '
A
' .. ' Z
' হয় তবে এক্সটেনশনটি alচ্ছিক এবং এড়ানো যায়।
- এক্সটেনশনের 32-বিট আকার
- এক্সটেনশন ডেটা
- এই চেকসামের আগে সূচি ফাইলের সামগ্রীতে 160-বিট SHA-1
mljrg মন্তব্য :
যদি সূচকটি এমন জায়গা হয় যেখানে পরের প্রতিশ্রুতি প্রস্তুত করা হয়, তবে git ls-files -s
প্রতিশ্রুতি দেওয়ার পরে " " কেন কিছুই ফিরিয়ে দেয় না?
কারণ সূচকটি যা ট্র্যাক করা হচ্ছে তা প্রতিনিধিত্ব করে এবং একটি প্রতিশ্রুতি দেওয়ার পরে, যা ট্র্যাক করা হচ্ছে তা সর্বশেষ কমিটের সমান ( git diff --cached
কিছুই প্রত্যাবর্তন করে না)।
সুতরাং git ls-files -s
ট্র্যাক করা সমস্ত ফাইলের তালিকা করে (আউটপুটে অবজেক্টের নাম, মোড বিট এবং স্টেজ নম্বর)।
সেই তালিকাটি (উপাদানটির সন্ধানের) প্রতিশ্রুতিবদ্ধ সামগ্রীর সাহায্যে সূচনা করা হয়েছে।
আপনি যখন শাখাটি স্যুইচ করেন, তখন সূচক বিষয়বস্তুটি আপনার সবেমাত্র সরিয়ে যাওয়া শাখার দ্বারা প্রদত্ত প্রতিশ্রুতিতে পুনরায় সেট করা হয়।
গিট 2.20 (Q4 2018) একটি সূচক এন্ট্রি অফসেট সারণী (আইইওটি) যুক্ত করেছে :
দেখুন কমিট 77ff112 , 3255089 কমিট , abb4bb8 কমিট , c780b9c কমিট , 3b1d9e0 কমিট , 371ed0d কমিট (10 অক্টোবর 2018) দ্বারা বেন ধীশক্তিমান ( benpeart
) ।
দেখুন 252d079 কমিট (26 সেপ্টেম্বর 2018) দ্বারা গান Nguyễn গান Thái আরো Ngọc গান Duy ( pclouds
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট e27bfaa , 19 অক্টোবর 2018)
ieot: সূচক এন্ট্রি অফসেট সারণী (আইইওটি) এক্সটেনশন যুক্ত করুন
এই প্যাচ সূচকটিতে অতিরিক্ত ডেটা যুক্ত করে সূচক লোড করার সিপিইউ ব্যয়কে মোকাবিলা করতে সক্ষম করে যা আমাদের ক্যাশে এন্ট্রিগুলির লোডিং এবং রূপান্তরকে দক্ষতার সাথে মাল্টি-থ্রেড করার অনুমতি দেয়।
এটি একটি (alচ্ছিক) সূচক এক্সটেনশান যুক্ত করে এটি সম্পাদন করে যা সূচী ফাইলে ক্যাশে প্রবেশের ব্লকগুলিতে অফসেটগুলির একটি সারণী।
ভি 4 সূচকের জন্য এই কাজটি করার জন্য, ক্যাশে এন্ট্রিগুলি লেখার সময় এটি পর্যায়ক্রমে বর্তমান এন্ট্রি এনকোড করে উপসর্গ-সংক্ষেপণটিকে "পুনরায় সেট করে" মনে হয় যেন পূর্বের এন্ট্রিটির পথের নামটি সম্পূর্ণ আলাদা এবং আইইওটিতে সেই প্রবেশের অফসেটটি সংরক্ষণ করে ।
মূলত, ভি 4 ইনডেক্সের সাহায্যে এটি উপসেটগুলি সংক্ষেপিত এন্ট্রিগুলির ব্লকগুলিতে অফসেট তৈরি করে।
সঙ্গে নতুন index.threads কনফিগ সেটিং সূচক লোড করা এখন দ্রুততর।
ফলস্বরূপ ( আইইওটি ব্যবহারের জন্য ), গিট 2.23 ( কিউread-cache.c load_cache_entries_threaded()
3 2019) এর জন্য 7bd9631 ফাংশনটি সাফ করুন commit
দেখুন কমিট 8373037 , d713e88 কমিট , d92349d কমিট , 113c29a কমিট , কমিট c95fc72 , কমিট 7a2a721 , c016579 কমিট , কমিট be27fb7 , কমিট 13a1781 , কমিট 7bd9631 , কমিট 3c1dce8 , cf7a901 কমিট , কমিট d64db5b , কমিট 76a7bc0 (09 মে 2019) দ্বারা জেফ কিং ( peff
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট c0e78f7 , 13 জুন 2019)
পঠন-ক্যাশে: থ্রেডযুক্ত লোড থেকে অব্যবহৃত প্যারামিটারটি ফেলে দিন
load_cache_entries_threaded()
ফাংশন একটি সময় লাগে src_offset
পরামিতি এটি ব্যবহার করে না। এটি এখানে প্রথম থেকেই 77ff112 সালে শুরু হয়েছে ( read-cache
: শ্রমিকের থ্রেডগুলিতে লোড ক্যাশে এন্ট্রি, 2018-10-10, গিট ভি 2.20.0-আরসি0)।
মেলিং তালিকায় খনন করা, সেই পরামিতিটি সিরিজের আগের পুনরাবৃত্তির অংশ ছিল , কিন্তু কোডটি আইওটি এক্সটেনশানটি ব্যবহার করে স্যুইচ করলে অপ্রয়োজনীয় হয়ে পড়ে।