Git 2.36 የምንጭ ቁጥጥር ልቀት

ከሶስት ወራት እድገት በኋላ, የተከፋፈለው ምንጭ ቁጥጥር ስርዓት Git 2.36 ተለቋል. Git በቅርንጫፍ እና በማዋሃድ ላይ ተመስርተው ተለዋዋጭ ያልሆኑ ቀጥተኛ ያልሆኑ የልማት መሳሪያዎችን በማቅረብ በጣም ታዋቂ, አስተማማኝ እና ከፍተኛ አፈፃፀም የስሪት ቁጥጥር ስርዓቶች አንዱ ነው. የታሪኩን ታማኝነት ለማረጋገጥ እና ወደ ኋላ የሚመለሱ ለውጦችን ለመቋቋም ፣በእያንዳንዱ ቁርጠኝነት ውስጥ ያለፈውን ታሪክ ሁሉ ስውር ሃሽንግ ስራ ላይ ይውላል ፣እንዲሁም የግለሰብ መለያዎችን ማረጋገጥ እና በገንቢዎች ዲጂታል ፊርማ ማድረግም ይቻላል።

ከቀዳሚው ልቀት ጋር ሲነፃፀር በ717 ገንቢዎች ተሳትፎ የተዘጋጀ 96 ለውጦች ወደ አዲሱ ስሪት ተወስደዋል፣ ከነዚህም 26ቱ ለመጀመሪያ ጊዜ በልማት ውስጥ ተሳትፈዋል። ዋና ፈጠራዎች፡-

  • የ "git log" እና "git show" ትዕዛዞች አሁን "- remerge-diff" አማራጭ አላቸው ይህም በጠቅላላው የውህደት ውጤት እና የ"ውህደት" ትዕዛዙን ከፈጸሙ በኋላ በኮሚሽኑ ውስጥ በተንጸባረቀው ትክክለኛ መረጃ መካከል ያለውን ልዩነት እንዲያሳዩ ያስችልዎታል. የውህደት ግጭቶችን በመፍታት በውጤቱ የተደረጉ ለውጦችን በግልፅ ለመገምገም ያስችልዎታል. የተለመደው የ"git show" ትዕዛዝ የተለያዩ የግጭት መፍትሄዎችን ያስገባል፣ ይህም ለውጦችን ለመረዳት አስቸጋሪ ያደርገዋል። ለምሳሌ ፣ ከመስመሩ በታች ባለው ቅጽበታዊ ገጽ እይታ ላይ “+/-” ሳይገለጽ በመጀመሪያ ቅርንጫፍ ውስጥ በአስተያየቱ ውስጥ sha1 ወደ oid ከመቀየር ጋር ተያይዞ የተፈጠረውን ግጭት የመጨረሻ መፍትሄ ያሳያል ፣ እና “+/-” ከመግቢያው ጋር የመጀመሪያውን ያሳያል ። በ dwim_ref () ተግባር ውስጥ በሁለተኛው ቅርንጫፍ ውስጥ ተጨማሪ ክርክር በመታየቱ የተፈጠረውን ግጭት መፍታት።
    Git 2.36 የምንጭ ቁጥጥር ልቀት

    የ "--remerge-diff" አማራጭን ሲጠቀሙ በግጭት አፈታት መካከል ያለው ልዩነት ለእያንዳንዱ የወላጅ ቅርንጫፍ አይለያዩም ነገር ግን በፋይሉ መካከል ያሉ ግጭቶችን በማዋሃድ እና በፋይሉ መካከል ያለው አጠቃላይ ልዩነት ይታያል.

    Git 2.36 የምንጭ ቁጥጥር ልቀት

  • ወደ fsync() ተግባር በመደወል የዲስክ መሸጎጫዎችን የማጠብ ባህሪን በማዋቀር ረገድ ተለዋዋጭነት ይጨምራል። ቀደም ሲል የነበረው የcore.fsyncObjectFiles መለኪያ በሁለት የውቅረት ተለዋዋጮች core.fsync እና core.fsyncMethod የተከፈለ ሲሆን ይህም fsyncን ለዕቃ ፋይሎች (.git/objects) ብቻ ሳይሆን ለሌሎች የጂት መዋቅሮች እንደ ማገናኛ (links) የመተግበር አቅምን ይሰጣል። .git/refs)፣ ሪፍሎግ እና ፋይሎችን ያሽጉ።

    የcore.fsync ተለዋዋጭን በመጠቀም fsync ከተፃፈ በኋላ የሚጠራው የውስጥ Git መዋቅሮች ዝርዝርን መግለጽ ይችላሉ። የcore.fsyncMethod ተለዋዋጭ መሸጎጫውን ለማጠብ ዘዴን እንድትመርጥ ይፈቅድልሃል፡ ለምሳሌ፡ ተመሳሳይ ስም ያለውን የስርዓት ጥሪ ለመጠቀም fsync ን መምረጥ ትችላለህ፡ ወይም የገጽ መሸጎጫ መፃፍን ለመጠቀም መጻፊያ ብቻ ይግለጹ።

  • ሌሎች ተጠቃሚዎች የ.git ማውጫዎችን ወደ የተጋሩ ክፍሎች እንዲተኩ ከሚያደርጉ ተጋላጭነቶች ለመጠበቅ የመረጃ ማከማቻ ባለቤት ማረጋገጫ ተጠናክሯል። ማናቸውንም የgit ትዕዛዞችን ማስፈጸም አሁን የሚፈቀደው በራሳቸው ".git" ማውጫዎች ውስጥ ብቻ ነው። ማከማቻው ያለው ማውጫ የሌላ ተጠቃሚ ከሆነ፣ ስህተት በነባሪነት ይታያል። ይህ ባህሪ የ safe.directory ቅንብርን በመጠቀም ሊሰናከል ይችላል።
  • የ Git ነገሮች ምንጭ ይዘቶችን ለማውጣት የታሰበው የ"git cat-file" ትዕዛዝ ከዚህ ቀደም ያለውን "--ባtch" እና "--batch-check" በሚለው የ"-batch-command" አማራጭ ተጨምሯል። ” ይዘቱን ለማሳየት ወይም “መረጃ <ነገር>”ን በመጠቀም የውጤቱን አይነት በተጣጣመ ሁኔታ የመምረጥ ችሎታን ያዛል። በተጨማሪም፣ የውጤት ቋቱን ለማጠብ የ"flush" ትዕዛዝ ይደገፋል።
  • የነገር ዛፍን ይዘቶች ዝርዝር ለማዘጋጀት የታሰበው ወደ “git ls-tree” ትዕዛዝ፣ ከ“—ስም-ብቻ ጋር ተመሳሳይ የሆነ “—oid-only” (“—object-only”) አማራጭ ተጨምሯል። ”፣ ጥሪውን ከስክሪፕት ለማቃለል የነገር መለያዎችን ብቻ ያሳያል። እንዲሁም የተተገበረው የ "--ቅርጸት" አማራጭ ነው, ይህም ስለ ሁነታ, አይነት, ስም እና መጠን መረጃን በማጣመር የራስዎን የውጤት ቅርጸት እንዲገልጹ ያስችልዎታል.
  • የ “git bisect run” ትዕዛዙ የሚተገበረውን የፋይል ባንዲራ ለስክሪፕት አለማዘጋጀቱን ማወቅ እና በዚህ አጋጣሚ በኮዶች 126 ወይም 127 ስህተቶችን ያሳያል (ከዚህ ቀደም ስክሪፕቱ ማሄድ ካልተቻለ ሁሉም ክለሳዎች እንደ ችግር ምልክት ተደርጎባቸዋል) .
  • በ "git fetch" ትዕዛዝ ላይ የ --refetch አማራጭ ታክሏል ቀደም ሲል በአካባቢው ስርዓት ላይ ስላለው ይዘት ለሌላኛው አካል ሳያሳውቅ ሁሉንም እቃዎች ለማምጣት. የአካባቢያዊ መረጃ ትክክለኛነት በማይታወቅበት ጊዜ ይህ ባህሪ ከውድቀቶች ለማገገም ጠቃሚ ሊሆን ይችላል።
  • የ "git update-index", "git checkout-index", "git read-tree" እና "git clean" ትእዛዞች አሁን አፈጻጸምን ለማሻሻል እና ከፊል ስራዎች በሚከናወኑ ማከማቻዎች ውስጥ ቦታን ለመቆጠብ ከፊል ኢንዴክሶችን ይደግፋሉ። cloning (ትንሽ-ቼክ አውት)።
  • የ“git clone —filter=… —recurse-submodules” ትዕዛዙ ተለውጧል፣ ይህም አሁን ወደ ንዑስ ሞጁሎች ከፊል ክሎኒንግ (ከዚህ ቀደም እንደዚህ ያሉ ትዕዛዞችን ሲፈጽም ማጣሪያው የተተገበረው በዋናው ይዘት ላይ ብቻ ሲሆን ንዑስ ሞጁሎችም ነበሩ)። ማጣሪያውን ከግምት ውስጥ ሳያስገባ ሙሉ በሙሉ ተዘግቷል)።
  • የ"git bundle" ትዕዛዙ ከፊል ክሎኒንግ ኦፕሬሽኖች ጋር ተመሳሳይ የሆነ ይዘትን ለመምረጥ ማጣሪያዎችን ለመለየት ድጋፍን አክሏል።
  • ንዑስ ሞጁሎችን በተከታታይ ለማቋረጥ ወደ "git ቅርንጫፍ" ትዕዛዝ "--recurse-submodules" አማራጭ ታክሏል።
  • Userdiff ለኮትሊን ቋንቋ አዲስ ተቆጣጣሪ ያቀርባል።

ምንጭ: opennet.ru

አስተያየት ያክሉ