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

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

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

  • የ"git shortlog" ትዕዛዝ ከለውጦች ታሪክ ውስጥ ስታቲስቲክስ ማጠቃለያዎችን ለማሳየት የተነደፈው፣ በደራሲ ወይም ኮሚሽነር ብቻ ያልተገደበ የፈፀሙትን በዘፈቀደ ለመቧደን የ"-ቡድን" አማራጭ አክሏል። ለምሳሌ የገንቢዎች ዝርዝር ስለ ለውጦቹ ብዛት መረጃ ለማሳየት በ"በጋራ ደራሲ" መስክ ላይ የተጠቀሱትን ረዳቶች ከግምት ውስጥ በማስገባት ትዕዛዙን መጠቀም ይችላሉ-git shortlog -ns --group=author - -ቡድን=ተጎታች፡በጋራ የተጻፈ

    የአጭር ሎግ ውፅዓት የቅርጸት መግለጫዎችን በመጠቀም ሊጠቃለል ይችላል፣ እና "--ቡድን" የሚለው አማራጭ ውስብስብ ዘገባዎችን መፍጠርን በእጅጉ ያቃልላል እና ተጨማሪ የመደርደር ትዕዛዞችን ያስወግዳል። ለምሳሌ፣ ለአንድ የተወሰነ ልቀት በየወሩ ምን ያህል ቁርጠኞች እንደተቀበሉ መረጃ የያዘ ሪፖርት ለመፍጠር፡ git shortlog v2.38.0.. —date='format:%Y-%m' —group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 ከዚህ ቀደም ተመሳሳይ ቀዶ ጥገና ለማካሄድ ዓይነተኛ እና ዩኒክ መገልገያዎችን መጠቀም አስፈላጊ ነበር፡git log v2.38.0 .. —ቀን='ቅርጸት፡%Y -%m' —ቅርጸት='%cd' | መደርደር | uniq -c

  • በማጠራቀሚያው ውስጥ ያልተጠቀሱ (በቅርንጫፎች ወይም መለያዎች ያልተጠቀሱ) የማይደረስ ዕቃዎችን ለማሸግ የተነደፈው የ "ክሩፍ ፓኮች" አሠራር ችሎታዎች ተዘርግተዋል. የማይደረስባቸው ነገሮች በቆሻሻ ሰብሳቢው ይሰረዛሉ፣ ነገር ግን የዘር ሁኔታዎችን ለማስወገድ ከመሰረዛቸው በፊት ለተወሰነ ጊዜ በማከማቻው ውስጥ ይቆዩ። የ "ክሩፍት ፓኮች" ዘዴ ሁሉንም የማይደረስባቸው ነገሮች በአንድ ጥቅል ፋይል ውስጥ እንዲያከማቹ እና የእያንዳንዱን ነገር የማሻሻያ ጊዜ በተለየ ሠንጠረዥ ውስጥ እንዲያሳዩ ይፈቅድልዎታል ፣ ይህም በ ".mtimes" ቅጥያ በተለየ ፋይል ውስጥ ተከማችቷል ። ከጠቅላላው የማሻሻያ ጊዜ ጋር አይጣመርም.

    የማይደረስባቸው ነገሮች በትክክል ከመሰረዛቸው በፊት በማከማቻው ውስጥ የሚቆዩበት ጊዜ የሚወሰነው በ"-prune=" አማራጭ ነው። " ይሁን እንጂ ከመሰረዝ በፊት መዘግየት በዘር ሁኔታዎች ምክንያት የማከማቻ ሙስናን ለመከላከል ፍትሃዊ ውጤታማ እና ተግባራዊ መንገድ ቢሆንም, 100% አስተማማኝ አይደለም. የተበላሸ ማከማቻን ወደነበረበት ለመመለስ ቀላል ለማድረግ አዲሱ ልቀት የጎደሉትን ነገሮች የመቆጠብ ችሎታን ይሰጣል "--expire-to" የሚለውን አማራጭ በ "git repack" ትዕዛዝ ላይ በመጨመር ውጫዊ ለመፍጠር ፋይልን እንዲገልጹ ያስችልዎታል. የሁሉም የተሰረዙ ዕቃዎች ቅጂ. ለምሳሌ, በመጠባበቂያ.git ፋይል ውስጥ ባለፉት 5 ደቂቃዎች ውስጥ ያልተቀየሩ የማይደረሱ ነገሮችን ለማስቀመጥ, ትዕዛዙን መጠቀም ይችላሉ: git repack --cruft --cruft-expiration=5.minutes.ago -d - expire -ወደ=../backup.git

  • በከፊል ክሎኒንግ (ስፓርሴ-ቼክአውት) እና ከፊል ኢንዴክሶች (ስፓርሴ ኢንዴክስ) በሚጠቀሙባቸው ቦታዎች ላይ ፍለጋ ሲደረግ የ "git grep -cached" ፍጥነት በከፍተኛ ሁኔታ ጨምሯል (እስከ 70%). ቀደም ሲል "-cached" የሚለውን አማራጭ ሲገልጹ, ፍለጋው በመጀመሪያ በመደበኛ ኢንዴክስ ውስጥ, እና ከፊል ውስጥ, ይህም በትላልቅ ማከማቻዎች ውስጥ ሲፈልጉ የሚስተዋል መዘግየቶችን አስከትሏል.
  • በ"git push" ክወና ወቅት ወደ ማከማቻው ውስጥ ከመቀመጡ በፊት የአገልጋዩ የአዳዲስ ነገሮች ቅንጅት ማረጋገጫ ተፋጠነ። ሲፈተሽ ለታወቁ ሊንኮች ብቻ ወደ ሂሳብ ሒሳብ በመቀየር፣ 7 ሚሊዮን ሊንኮች ባለው የሙከራ ማከማቻ ውስጥ፣ ከእነዚህ ውስጥ 3 በመቶው ብቻ በግፊት ኦፕሬሽን ይሸፈናሉ፣ አስተዋወቀው ማመቻቸት የፍተሻ ጊዜውን በ4.5 ጊዜ እንዲቀንስ አስችሎታል።
  • በኮዱ ውስጥ ሊፈጠር ከሚችለው የኢንቲጀር መብዛት ለመከላከል የ"git apply" ትዕዛዙ ሊሰሩ የሚችሉትን ከፍተኛውን የፔች መጠን ይገድባል። የማጣበቂያው መጠን ከ1 ጂቢ በላይ ከሆነ ስህተት አሁን ይታያል።
  • ሊከሰቱ ከሚችሉ ተጋላጭነቶች ለመከላከል h2h3 ሞጁሉን ከGIT_TRACE_CURL=1 ወይም GIT_CURL_VERBOSE=1 አማራጭ ጋር ከኤችቲቲፒ/2 ጋር ሲጠቀሙ ከተቀመጡት ራስጌዎች አላስፈላጊ መረጃዎችን ለማጽዳት ለውጦች ተደርገዋል።
  • ከሌላ ቅርንጫፍ ጋር ተምሳሌታዊ አገናኝ በሆነው ቅርንጫፍ ላይ ቼክ ሲያካሂዱ የ"git symbolic-ref HEAD" ትዕዛዝ አሁን ከሲምሊንክ ስም ይልቅ የታለመውን ቅርንጫፍ ስም ያሳያል።
  • ያለፈውን ቅርንጫፍ መግለጫ ለማርትዕ ለ@{-1} ነጋሪ እሴት ታክሏል ወደ “--edit-description” አማራጭ (“git branch —edit-description @{-1}”)።
  • በመደበኛ ግቤት የአማራጮች ዝርዝርን ለማለፍ የ"git merge-tree --stdin" ትዕዛዝ ታክሏል።
  • በኔትወርክ የፋይል ስርዓቶች ላይ የፋይል ስርዓት ለውጦችን የሚከታተለው የ fsmonitor ተቆጣጣሪው በነባሪነት ተሰናክሏል።

ምንጭ: opennet.ru

አስተያየት ያክሉ