Git 2.31, ஒரு பரவலாக்கப்பட்ட மூலக் கட்டுப்பாட்டு அமைப்பு, இப்போது கிடைக்கிறது. Git என்பது மிகவும் பிரபலமான, நம்பகமான மற்றும் உயர் செயல்திறன் கொண்ட பதிப்பு கட்டுப்பாட்டு அமைப்புகளில் ஒன்றாகும், இது கிளைத்தல் மற்றும் இணைத்தல் ஆகியவற்றின் அடிப்படையில் நெகிழ்வான, நேரியல் அல்லாத மேம்பாட்டு திறன்களை வழங்குகிறது. வரலாற்று ஒருமைப்பாடு மற்றும் பின்னோக்கிச் செயல்படும் மாற்றங்களுக்கு மீள்தன்மையை உறுதிசெய்ய, இது ஒவ்வொரு கமிட்டிலும் முழு முந்தைய வரலாற்றின் மறைமுகமான ஹேஷிங்கைப் பயன்படுத்துகிறது, மேலும் தனிப்பட்ட குறிச்சொற்கள் மற்றும் கமிட்களின் டிஜிட்டல் கையொப்பங்களை செயல்படுத்துகிறது.
முந்தைய வெளியீட்டுடன் ஒப்பிடும்போது, புதிய பதிப்பில் 85 டெவலப்பர்களின் பங்கேற்புடன் தயாரிக்கப்பட்ட 679 மாற்றங்கள் உள்ளன, அவர்களில் 23 பேர் முதல் முறையாக பங்களித்தனர். முக்கிய புதிய அம்சங்கள் பின்வருமாறு:
- "git maintenance" கட்டளை சேர்க்கப்பட்டுள்ளது, இது cron ஐ ஆதரிக்காத கணினிகளில் அவ்வப்போது பணிகளைச் செய்ய அனுமதிக்கிறது. எடுத்துக்காட்டாக, புதிய கட்டளையை அவ்வப்போது ஒரு repository packing செயல்முறையை இயக்கப் பயன்படுத்தலாம், பல்வேறு கட்டளைகளை இயக்கும் போது தானியங்கி packing செய்யப்படும்போது repository பூட்டப்படும் வரை காத்திருக்க வேண்டிய அவசியத்தை நீக்குகிறது. "git maintenance" கட்டளை, ஊடாடும் அமர்வைத் தடுக்காமல், பின்னணியில் மேம்படுத்தல்கள் மற்றும் பராமரிப்பு செயல்பாடுகளைச் செய்ய அனுமதிக்கிறது. ஒரு மணி நேரத்திற்கு ஒரு முறை, அது முன்கூட்டியே தொலைதூர repository இலிருந்து புதிய பொருட்களைப் பதிவிறக்கி, commit graph கோப்பைப் புதுப்பித்து, இரவில் repository packing செயல்முறையை இயக்குகிறது.
- பேக்ஃபைல்களுக்கான ஆன்-டிஸ்க் ரிவர்ஸ் இன்டெக்ஸ் (ரெவிண்டெக்ஸ்) பராமரிப்பதற்கான ஆதரவு சேர்க்கப்பட்டுள்ளது. நினைவூட்டலாக, Git அனைத்து தரவையும் பொருள்களாக சேமிக்கிறது, அவை தனித்தனி கோப்புகளில் சேமிக்கப்படுகின்றன. களஞ்சிய செயல்திறனை மேம்படுத்த, பொருள்கள் கூடுதலாக பேக்ஃபைல்களில் வைக்கப்படுகின்றன, அங்கு தகவல் ஒன்றையொன்று பின்தொடரும் பொருட்களின் ஸ்ட்ரீமாக வழங்கப்படுகிறது (git fetch மற்றும் git push கட்டளைகளுடன் பொருட்களை மாற்றும்போது இதே போன்ற வடிவம் பயன்படுத்தப்படுகிறது). ஒவ்வொரு பேக்ஃபைலுக்கும் ஒரு குறியீட்டு கோப்பு (.idx) உருவாக்கப்படுகிறது, இது கொடுக்கப்பட்ட பொருள் சேமிக்கப்படும் பேக்ஃபைலில் உள்ள ஆஃப்செட்டை பொருள் ஐடியின் அடிப்படையில் விரைவாக தீர்மானிக்க அனுமதிக்கிறது. Git 2.31 இல் அறிமுகப்படுத்தப்பட்ட தலைகீழ் குறியீடு (.rev), பேக்ஃபைலில் பொருளின் இருப்பிடத்தின் அடிப்படையில் ஒரு பொருள் ஐடியை தீர்மானிக்கும் செயல்முறையை மேம்படுத்துவதை நோக்கமாகக் கொண்டுள்ளது.
முன்னதாக, இதுபோன்ற ஒரு மாற்றம் பேக் கோப்பு பாகுபடுத்தலின் போது உடனடியாகச் செய்யப்பட்டு நினைவகத்தில் மட்டுமே சேமிக்கப்பட்டது, இது அத்தகைய குறியீடுகளை மீண்டும் பயன்படுத்துவதைத் தடுத்தது மற்றும் ஒவ்வொரு முறையும் குறியீட்டை உருவாக்க வேண்டிய கட்டாயத்தை ஏற்படுத்தியது. குறியீட்டு கட்டுமானம் என்பது பொருள்-நிலை ஜோடிகளின் வரிசையை உருவாக்கி அதை நிலையின் அடிப்படையில் வரிசைப்படுத்துவதை உள்ளடக்கியது, இது பெரிய பேக் கோப்புகளுக்கு நேரத்தை எடுத்துக்கொள்ளும்.
எடுத்துக்காட்டாக, முன்னோக்கிய குறியீட்டைப் பயன்படுத்தி பொருள் உள்ளடக்கங்களைக் காண்பிப்பது, அட்டவணைப்படுத்தாமல் பொருள் அளவுகளைக் காண்பிப்பதை விட 62 மடங்கு வேகமாக இருந்தது. தலைகீழ் குறியீட்டைப் பயன்படுத்திய பிறகு, இந்த செயல்பாடுகள் தோராயமாக அதே நேரத்தை எடுத்தன. தலைகீழ் குறியீடுகள், வட்டில் இருந்து முன்பே இருக்கும் தரவை நேரடியாக மாற்றுவதன் மூலம் பெறுதல் மற்றும் புஷ் செயல்பாடுகளையும் விரைவுபடுத்துகின்றன. தலைகீழ் குறியீடுகள் முன்னிருப்பாக உருவாக்கப்படுவதில்லை; அவற்றை உருவாக்குவதற்கு "git config pack.writeReverseIndex true" அமைப்பை இயக்க வேண்டும், பின்னர் களஞ்சியத்தை "git repack -Ad" உடன் பேக் செய்ய வேண்டும்.
- கமிட்-கிராஃப் கோப்பு வடிவமைப்பில் புதிய கமிட் தலைமுறை எண் தரவைச் சேர்ப்பதன் அடிப்படையில் செயல்திறன் மேம்படுத்தல்கள் சேர்க்கப்பட்டன, இது கமிட் தகவலுக்கான அணுகலை மேம்படுத்த பயன்படுகிறது, இது கூடுதல் கமிட் செயல்பாடுகளை விரைவுபடுத்தப் பயன்படுகிறது.
- புதிய களஞ்சியங்களில் இயல்புநிலை முதன்மைக் கிளைப் பெயரை மேலெழுதும் திறன் (init.defaultBranch அமைப்பு) விரிவாக்கப்பட்டுள்ளது. வெளிப்புறக் களஞ்சியங்களை அணுகும்போது, HEAD சுட்டிக்காட்டும் கிளையை மீட்டெடுக்க git முயற்சிக்கும், அதாவது, வெளிப்புறக் களஞ்சியம் இயல்புநிலை முதன்மைக் கிளைப் பெயரை மேலெழுதும் திறன் விரிவாக்கப்பட்டுள்ளது. சர்வர் இயல்பாக "main" கிளையைப் பயன்படுத்தினால், "git clone" செயல்பாடு "main" கிளையை உள்ளூரில் இருந்து பெற முயற்சிக்கும். Git 2.31-இல், இந்த வகையான பெறுதல் வசதி இப்போது காலி ரெபாசிட்டரிகளுக்கும் செயல்படுத்தப்பட்டுள்ளது. உதாரணமாக, ஒரு புதிய ரெபாசிட்டரியில் முதல் பேட்ச்களைச் சேர்ப்பதற்கு முன்பு அதை உள்ளூரில் குளோன் செய்யும்போது, அந்த உள்ளூர் நகலில் இப்போது வெளிப்புறக் கிளையில் நிறுவப்பட்ட பதிப்பு இருக்கும். சர்வர் முன்னிருப்பு முதன்மை கிளை பெயர்.
- 'git rev-list' கட்டளை இப்போது '--disk-usage' விருப்பத்தைக் கொண்டுள்ளது, இது பொருட்களின் அளவின் சுருக்கத்தைக் காட்ட உங்களை அனுமதிக்கிறது.
- வரவிருக்கும் இணைப்பு பின்தள மாற்றீட்டை எதிர்பார்த்து, மறுபெயரிடு கண்டறிதல் கணிசமாக மேம்படுத்தப்பட்டுள்ளது.
- மரபு PCRE1 வழக்கமான வெளிப்பாடு நூலகத்திற்கான ஆதரவு நிறுத்தப்பட்டுள்ளது.
- ஹாஷிங் வழிமுறையைப் பொருட்படுத்தாமல், சுருக்கப்பட்ட URLகளை கட்டாயமாக முடக்குவது இப்போது கிடைக்கிறது. core.abbrev அளவுருவை "இல்லை" என அமைப்பதன் மூலம் இந்த முடக்கம் செயல்படுத்தப்படுகிறது.
- 'git rev-parse' கட்டளை இப்போது '--path-format=(absolute|relative)' விருப்பத்தைக் கொண்டுள்ளது, இது தொடர்புடைய பாதைகள் அல்லது முழுமையான பாதைகள் வெளியீடா என்பதை வெளிப்படையாகக் கட்டுப்படுத்துகிறது.
- தனிப்பயன் கிட் துணைக் கட்டளைகளுக்கு நிறைவு விதிகளைச் சேர்ப்பதை இப்போது பாஷ் உள்ளீட்டு நிறைவு ஸ்கிரிப்ட்கள் எளிதாக்குகின்றன.
- 'git bundle' கட்டளை இப்போது நிலையான உள்ளீட்டிலிருந்து குறிப்புகளைப் படிக்க '--stdin' விருப்பத்தைக் கொண்டுள்ளது.
- "git log" கட்டளையில் "--diff-merges=" என்ற புதிய விருப்பம் சேர்க்கப்பட்டுள்ளது. ".
- "git ls-files" கட்டளை இப்போது வெளியீட்டிலிருந்து நகல்களை நீக்க "--deduplicatecan" விருப்பத்தைக் கொண்டுள்ளது.
- பல்வேறு வகையான கமிட்களைத் தவிர்க்க புதிய முகமூடிகள் சேர்க்கப்பட்டன - " ^!» மற்றும் « ^- ".
- 'git range-diff' கட்டளையில் இப்போது '--left-only' மற்றும் '--right-only' விருப்பங்கள் உள்ளன, அவை ஒப்பிடப்பட்ட வரம்பின் ஒரு பக்கத்தை மட்டுமே காட்டுகின்றன.
- --skip-to= விருப்பங்கள் git diff மற்றும் git log கட்டளைகளில் சேர்க்கப்பட்டுள்ளன. " மற்றும் "—சுழற்று-க்கு= » ஆரம்ப பாதைகளின் முடிவைத் தவிர்க்க அல்லது நகர்த்த.
- git difftool கட்டளை இப்போது "--skip-to=" விருப்பத்தைக் கொண்டுள்ளது. » ஒரு தன்னிச்சையான பாதையிலிருந்து குறுக்கிடப்பட்ட அமர்வை மீண்டும் தொடங்க.
- டெவலப்பர்களுக்கிடையேயான மோதல் சூழ்நிலைகளைத் தீர்ப்பதற்கான அடிப்படைக் கொள்கைகளை வரையறுக்கும் நடத்தை விதி, பதிப்பு 2.0 க்கு புதுப்பிக்கப்பட்டுள்ளது (முன்பு பதிப்பு 1.4 பயன்படுத்தப்பட்டது).
ஆதாரம்: opennet.ru
