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

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

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

  • “git log” మరియు “git show” కమాండ్‌లు ఇప్పుడు “—remerge-diff” ఎంపికను కలిగి ఉన్నాయి, ఇది విలీనం యొక్క మొత్తం ఫలితం మరియు “merge” ఆదేశాన్ని ప్రాసెస్ చేసిన తర్వాత కమిట్‌లో ప్రతిబింబించే వాస్తవ డేటా మధ్య తేడాలను చూపడానికి మిమ్మల్ని అనుమతిస్తుంది. , ఇది విలీన వైరుధ్యాలను పరిష్కరించే ఫలితంగా చేసిన మార్పులను స్పష్టంగా అంచనా వేయడానికి మిమ్మల్ని అనుమతిస్తుంది. సాధారణ "git show" కమాండ్ విభిన్న సంఘర్షణ పరిష్కారాలను ఇండెంట్ చేస్తుంది, మార్పులను అర్థం చేసుకోవడం కష్టతరం చేస్తుంది. ఉదాహరణకు, "+/-" పంక్తి దిగువన ఉన్న స్క్రీన్‌షాట్‌లో ఇండెంటేషన్ లేకుండా మొదటి బ్రాంచ్‌లోని వ్యాఖ్యలో sha1 పేరును oidగా మార్చడంతో సంబంధం ఉన్న సంఘర్షణ యొక్క చివరి రిజల్యూషన్‌ను చూపుతుంది మరియు ఇండెంటేషన్‌తో "+/-" ప్రారంభాన్ని చూపుతుంది dwim_ref() ఫంక్షన్‌లో రెండవ బ్రాంచ్‌లో అదనపు ఆర్గ్యుమెంట్ కనిపించడం వల్ల ఏర్పడిన సంఘర్షణ యొక్క పరిష్కారం.
    Git 2.36 మూల నియంత్రణ విడుదల

    "--remerge-diff" ఎంపికను ఉపయోగిస్తున్నప్పుడు, ప్రతి పేరెంట్ బ్రాంచ్‌కు వైరుధ్య రిజల్యూషన్‌ల మధ్య తేడాలు వేరు చేయబడవు, అయితే విలీన వైరుధ్యాలు ఉన్న ఫైల్ మరియు వైరుధ్యాలు పరిష్కరించబడిన ఫైల్ మధ్య మొత్తం తేడాలు చూపబడతాయి.

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

  • fsync() ఫంక్షన్‌కు కాల్ ద్వారా డిస్క్ కాష్‌లను ఫ్లష్ చేయడం కోసం ప్రవర్తనను కాన్ఫిగర్ చేయడంలో పెరిగిన వశ్యత. గతంలో అందుబాటులో ఉన్న core.fsyncObjectFiles పరామితి core.fsync మరియు core.fsyncMethod అనే రెండు కాన్ఫిగరేషన్ వేరియబుల్స్‌గా విభజించబడింది, ఇది fsyncని ఆబ్జెక్ట్ ఫైల్‌లకు (.git/objects) మాత్రమే కాకుండా లింక్‌ల వంటి ఇతర git స్ట్రక్చర్‌లకు కూడా వర్తింపజేసే సామర్థ్యాన్ని అందిస్తుంది. .git /refs), ఫైల్‌లను రీలాగ్ చేయండి మరియు ప్యాక్ చేయండి.

    core.fsync వేరియబుల్ ఉపయోగించి, మీరు అంతర్గత Git నిర్మాణాల జాబితాను పేర్కొనవచ్చు, దీని కోసం వ్రాత ఆపరేషన్ తర్వాత fsync అదనంగా పిలువబడుతుంది. core.fsyncMethod వేరియబుల్ కాష్‌ను ఫ్లష్ చేయడానికి ఒక పద్ధతిని ఎంచుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది, ఉదాహరణకు, మీరు అదే పేరుతో సిస్టమ్ కాల్‌ని ఉపయోగించడానికి fsyncని ఎంచుకోవచ్చు లేదా pagecache రైట్‌బ్యాక్‌ని ఉపయోగించడానికి రైట్‌అవుట్‌ని మాత్రమే పేర్కొనవచ్చు.

  • ఇతర వినియోగదారుల .git డైరెక్టరీల ప్రత్యామ్నాయాన్ని భాగస్వామ్య విభాగాలలోకి మార్చే దుర్బలత్వాల నుండి రక్షించడానికి, రిపోజిటరీ యజమాని ధృవీకరణ బలోపేతం చేయబడింది. ఏదైనా git ఆదేశాలను అమలు చేయడం ఇప్పుడు వారి స్వంత ".git" డైరెక్టరీలలో మాత్రమే అనుమతించబడుతుంది. రిపోజిటరీతో ఉన్న డైరెక్టరీ మరొక వినియోగదారుకు చెందినదైతే, డిఫాల్ట్‌గా లోపం ప్రదర్శించబడుతుంది. safe.directory సెట్టింగ్‌ని ఉపయోగించి ఈ ప్రవర్తనను నిలిపివేయవచ్చు.
  • Git ఆబ్జెక్ట్‌ల సోర్స్ కంటెంట్‌లను అవుట్‌పుట్ చేయడానికి ఉద్దేశించిన “git cat-file” కమాండ్ “--batch-command” ఎంపికతో అనుబంధించబడింది, ఇది గతంలో అందుబాటులో ఉన్న “--batch” మరియు “--batch-checkని పూర్తి చేస్తుంది. కంటెంట్‌ను ప్రదర్శించడానికి "contents <object>" లేదా ఆబ్జెక్ట్ గురించి సమాచారాన్ని ప్రదర్శించడానికి "info <object>"ని ఉపయోగించి అవుట్‌పుట్ రకాన్ని అనుకూలీకరించగల సామర్థ్యంతో కమాండ్‌లు. అదనంగా, అవుట్‌పుట్ బఫర్‌ను ఫ్లష్ చేయడానికి "ఫ్లష్" ఆదేశం మద్దతు ఇస్తుంది.
  • ఆబ్జెక్ట్ ట్రీ యొక్క కంటెంట్‌ల జాబితాను రూపొందించడానికి ఉద్దేశించిన “git ls-tree” ఆదేశానికి, “—name-only” వలె “—oid-only” (“—object-only”) ఎంపిక జోడించబడింది. ”, స్క్రిప్ట్‌ల నుండి కాల్‌ను సులభతరం చేయడానికి ఆబ్జెక్ట్ ఐడెంటిఫైయర్‌లను మాత్రమే ప్రదర్శిస్తుంది. "--ఫార్మాట్" ఎంపిక కూడా అమలు చేయబడింది, ఇది మోడ్, రకం, పేరు మరియు పరిమాణం గురించి సమాచారాన్ని కలపడం ద్వారా మీ స్వంత అవుట్‌పుట్ ఆకృతిని నిర్వచించడానికి మిమ్మల్ని అనుమతిస్తుంది.
  • “git bisect run” కమాండ్ స్క్రిప్ట్ కోసం ఎక్జిక్యూటబుల్ ఫైల్ ఫ్లాగ్‌ను సెట్ చేయలేదని గుర్తించడాన్ని అమలు చేస్తుంది మరియు ఈ సందర్భంలో 126 లేదా 127 కోడ్‌లతో లోపాలను ప్రదర్శిస్తుంది (గతంలో, స్క్రిప్ట్‌ను అమలు చేయలేకపోతే, అన్ని పునర్విమర్శలు సమస్యలు ఉన్నట్లు గుర్తించబడ్డాయి) .
  • స్థానిక సిస్టమ్‌లో ఇప్పటికే ఉన్న కంటెంట్‌ల గురించి ఇతర పక్షానికి తెలియజేయకుండా అన్ని ఆబ్జెక్ట్‌లను పొందేందుకు "git fetch" కమాండ్‌కు --refetch ఎంపిక జోడించబడింది. స్థానిక డేటా యొక్క సమగ్రత అనిశ్చితంగా ఉన్నప్పుడు వైఫల్యాల నుండి కోలుకోవడానికి ఈ ప్రవర్తన ఉపయోగపడుతుంది.
  • "git update-index", "git checkout-index", "git read-tree" మరియు "git clean" కమాండ్‌లు ఇప్పుడు పనితీరును మెరుగుపరచడానికి మరియు పాక్షిక కార్యకలాపాలు నిర్వహించబడే రిపోజిటరీలలో స్థలాన్ని ఆదా చేయడానికి పాక్షిక సూచికలకు (స్పేర్స్ ఇండెక్స్) మద్దతునిస్తాయి. క్లోనింగ్ (స్పేర్స్-చెక్అవుట్).
  • “git clone —filter=... —recurse-submodules” కమాండ్ యొక్క ప్రవర్తన మార్చబడింది, ఇది ఇప్పుడు సబ్‌మాడ్యూల్స్ యొక్క పాక్షిక క్లోనింగ్‌కు దారి తీస్తుంది (గతంలో, అటువంటి ఆదేశాలను అమలు చేస్తున్నప్పుడు, ఫిల్టర్ ప్రధాన కంటెంట్‌కు మాత్రమే వర్తించబడుతుంది మరియు సబ్‌మాడ్యూల్స్ ఫిల్టర్‌ను పరిగణనలోకి తీసుకోకుండా పూర్తిగా క్లోన్ చేయబడింది).
  • "git bundle" కమాండ్ పాక్షిక క్లోనింగ్ ఆపరేషన్‌ల మాదిరిగానే కంటెంట్‌ను ఎంచుకోవడానికి ఫిల్టర్‌లను పేర్కొనడానికి మద్దతును జోడించింది.
  • సబ్‌మాడ్యూల్స్‌ను పునరావృతంగా ప్రయాణించడానికి "git బ్రాంచ్" కమాండ్‌కు "--recurse-submodules" ఎంపిక జోడించబడింది.
  • Userdiff కోట్లిన్ భాష కోసం కొత్త హ్యాండ్లర్‌ను అందిస్తుంది.

మూలం: opennet.ru

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