Git 2.37 మూల నియంత్రణ విడుదల

పంపిణీ చేయబడిన మూల నియంత్రణ వ్యవస్థ యొక్క Git 2.37 విడుదల పరిచయం చేయబడింది. Git అత్యంత ప్రజాదరణ పొందిన, విశ్వసనీయమైన మరియు అధిక-పనితీరు గల సంస్కరణ నియంత్రణ వ్యవస్థలలో ఒకటి, ఇది శాఖలను విభజించడం మరియు విలీనం చేయడం ఆధారంగా సౌకర్యవంతమైన నాన్-లీనియర్ డెవలప్‌మెంట్ సాధనాలను అందిస్తుంది. చరిత్ర యొక్క సమగ్రతను నిర్ధారించడానికి మరియు ప్రతిఘటన మార్పులకు ప్రతిఘటనను నిర్ధారించడానికి, ప్రతి కమిట్‌లో మునుపటి మొత్తం చరిత్ర యొక్క అవ్యక్త హాషింగ్ ఉపయోగించబడుతుంది, డెవలపర్‌ల నుండి డిజిటల్ సంతకాలతో వ్యక్తిగత ట్యాగ్‌లు మరియు కమిట్‌లను ధృవీకరించడం కూడా సాధ్యమవుతుంది.

మునుపటి విడుదలతో పోలిస్తే, కొత్త వెర్షన్‌లో 395 మార్పులు ఆమోదించబడ్డాయి, 75 మంది డెవలపర్‌ల భాగస్వామ్యంతో తయారు చేయబడ్డాయి, అందులో 20 మంది మొదటిసారిగా అభివృద్ధిలో పాల్గొన్నారు. ప్రధాన ఆవిష్కరణలు:

  • పాక్షిక సూచికల యొక్క మెకానిజం (స్పేర్స్ ఇండెక్స్), రిపోజిటరీలో కొంత భాగాన్ని మాత్రమే కవర్ చేస్తుంది, ఇది విస్తృత ఉపయోగం కోసం సిద్ధంగా ఉంది. పాక్షిక సూచికలు పనితీరును మెరుగుపరుస్తాయి మరియు పాక్షిక క్లోనింగ్ కార్యకలాపాలు (స్పేర్స్-చెకౌట్) చేసే లేదా రిపోజిటరీ యొక్క పాక్షిక కాపీపై పనిచేసే రిపోజిటరీలలో స్థలాన్ని ఆదా చేయగలవు. కొత్త విడుదలలో, "git show", "git sparse-checkout" మరియు "git stash" కమాండ్‌లలో పాక్షిక సూచికలను ఏకీకృతం చేయడానికి పని పూర్తయింది. పాక్షిక సూచికలను ఉపయోగించడం ద్వారా అత్యంత ముఖ్యమైన పనితీరు లాభం "git stash" కమాండ్‌లో ఉంది, ఇది కొన్ని సందర్భాల్లో 80% వరకు వేగంగా ఉంటుంది.
  • రిపోజిటరీలో సూచించబడని (బ్రాంచ్‌లు లేదా ట్యాగ్‌లు సూచించబడవు) చేరుకోలేని వస్తువులను ప్యాకింగ్ చేయడానికి కొత్త "క్రాఫ్ట్ ప్యాక్స్" మెకానిజం అమలు చేయబడింది. చేరుకోలేని వస్తువులు చెత్త కలెక్టర్ ద్వారా తీసివేయబడతాయి, అయితే జాతి పరిస్థితులను నివారించడానికి తీసివేయడానికి ముందు కొంత సమయం వరకు రిపోజిటరీలో ఉంటాయి. చేరుకోలేని వస్తువుల కాలాన్ని ట్రాక్ చేయడానికి, సారూప్య వస్తువుల మార్పు సమయంతో వాటికి లేబుల్‌లను బంధించడం అవసరం, ఇది వాటిని ఒకే ప్యాక్-ఫైల్‌లో నిల్వ చేయడానికి అనుమతించదు, దీనిలో అన్ని వస్తువులు సాధారణ మార్పు సమయాన్ని కలిగి ఉంటాయి. మునుపు, ప్రతి వస్తువును ప్రత్యేక ఫైల్‌లో సేవ్ చేయడం వలన పెద్ద సంఖ్యలో తాజా, చేరుకోలేని వస్తువులు ఇంకా తొలగించబడనప్పుడు సమస్యలకు దారితీసింది. ప్రతిపాదిత "క్రాఫ్ట్ ప్యాక్‌లు" మెకానిజం ఒక ప్యాక్-ఫైల్‌లో అందుబాటులో లేని అన్ని వస్తువులను నిల్వ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు ".mtimes" పొడిగింపుతో ఫైల్‌లో నిల్వ చేయబడిన ప్రత్యేక పట్టికలో ప్రతి వస్తువు యొక్క సవరణ సమయంపై డేటాను ప్రతిబింబిస్తుంది.
  • Windows మరియు macOS కోసం, ఫైల్ సిస్టమ్‌లో మార్పులను ట్రాక్ చేయడానికి అంతర్నిర్మిత మెకానిజం ఉంది, ఇది "git స్థితి" వంటి కార్యకలాపాలను నిర్వహిస్తున్నప్పుడు మొత్తం పని డైరెక్టరీని లెక్కించవలసిన అవసరాన్ని తొలగిస్తుంది. గతంలో, హుక్స్ ద్వారా మార్పులను ట్రాక్ చేయడానికి, వాచ్‌మాన్ వంటి బాహ్య ఫైల్ సిస్టమ్ మార్పు ట్రాకింగ్ యుటిలిటీలను అనుసంధానించవచ్చు, అయితే దీనికి అదనపు ప్రోగ్రామ్‌ల ఇన్‌స్టాలేషన్ మరియు కాన్ఫిగరేషన్ అవసరం. ఈ ఫంక్షనాలిటీ ఇప్పుడు నిర్మించబడింది మరియు "git config core.fsmonitor true" ఆదేశంతో ప్రారంభించబడుతుంది.
  • "git sparse-checkout" కమాండ్ పాక్షిక క్లోనింగ్ కోసం టెంప్లేట్‌లను నిర్వచించే "-cone" మోడ్‌కి ప్రత్యామ్నాయ మద్దతును నిలిపివేసింది, ఇది క్లోన్ ఆపరేషన్‌కు లోబడి రిపోజిటరీ యొక్క భాగాన్ని నిర్ణయించేటప్పుడు, "ని ఉపయోగించి వ్యక్తిగత ఫైల్‌లను జాబితా చేయడానికి అనుమతిస్తుంది. .gitignore" సింటాక్స్, ఇది ఆప్టిమైజేషన్ పాక్షిక సూచికలను ఉపయోగించడానికి అనుమతించదు.
  • డిస్క్‌కి మార్పులను ఫ్లష్ చేయడానికి fsync() కాల్‌ని కాన్ఫిగర్ చేయడంలో మెరుగైన సౌలభ్యం. "core.fsyncMethod" పరామితికి "బ్యాచ్" సమకాలీకరణ వ్యూహానికి మద్దతు జోడించబడింది, ఇది ఒకే fsync() కాల్ ద్వారా ఫ్లష్ చేయబడిన రైట్‌బ్యాక్ కాష్‌లో మార్పులను సేకరించడం ద్వారా పెద్ద సంఖ్యలో వ్యక్తిగత ఫైల్‌లను వ్రాసేటప్పుడు పనిని వేగవంతం చేస్తుంది. git add కమాండ్‌కు 500 ఫైల్‌లు జోడించబడేలా చేసిన ఒక పరీక్ష కొత్త మోడ్ ప్రారంభించబడి 0.15 సెకన్లలో పూర్తయింది, అయితే fsync()తో ప్రతి ఫైల్‌కు 1.88 సెకన్లు మరియు fsyncని ఉపయోగించకుండా 0.06 సెకన్లు పట్టింది.
  • "Git log" మరియు "git rev-list" వంటి ట్రావర్సల్ కమాండ్‌లు ఇప్పుడు "X" కంటే పాత కమిట్‌ల గురించి సమాచారాన్ని ఫిల్టర్ చేయడానికి " --since-as-filter=X" ఎంపికను కలిగి ఉన్నాయి. “-since” ఎంపిక వలె కాకుండా, కొత్త కమాండ్ ఫిల్టర్‌గా అమలు చేయబడుతుంది, ఇది పేర్కొన్న సమయం కంటే పాత మొదటి కమిట్ తర్వాత శోధనను ఆపదు.
  • "git రిమోట్" కమాండ్‌లో, "-v" ఫ్లాగ్‌ను పేర్కొనేటప్పుడు, రిపోజిటరీ యొక్క పాక్షిక క్లోన్‌ల గురించి సమాచారం అందించబడుతుంది.
  • "transfer.credentialsInUrl" సెట్టింగ్ జోడించబడింది, ఇది "హెచ్చరిక", "డై" మరియు "అనుమతించు" విలువలను తీసుకోవచ్చు. రిమోట్‌లో పేర్కొన్నట్లయితే. స్పష్టమైన టెక్స్ట్‌లో .url" ఆధారాలు, "transfer.credentialsInUrl" సెట్టింగ్‌ని "డై"కి సెట్ చేసినట్లయితే "పొందడం" లేదా "పుష్" ఆపరేషన్ చేసే ప్రయత్నం విఫలమవుతుంది లేదా "హెచ్చరించు"కి సెట్ చేస్తే హెచ్చరిక.
  • డిఫాల్ట్‌గా, "git add -i" కమాండ్ యొక్క ఇంటరాక్టివ్ మోడ్ యొక్క కొత్త అమలు, Perl నుండి Cకి తిరిగి వ్రాయబడింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి