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

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

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

  • የክምችቱን ክፍል ብቻ የሚሸፍነው ከፊል ኢንዴክሶች (ስፓርሴ ኢንዴክስ) አሠራር በስፋት ጥቅም ላይ እንዲውል ቀርቧል። ከፊል ኢንዴክሶች አፈፃፀሙን ሊያሻሽሉ እና ከፊል ክሎኒንግ (ስፓርሴ-ቼክአውት) ስራዎችን በሚያከናውኑ ማከማቻዎች ውስጥ ቦታን መቆጠብ ወይም ከማከማቻው ያልተሟላ ቅጂ ጋር መስራት ይችላሉ። አዲሱ ልቀት የከፊል ኢንዴክሶችን ወደ git ሾው፣ git sparse-checkout እና git stash ትዕዛዞችን ማዋሃድ ያጠናቅቃል። ከፊል ኢንዴክሶችን በመጠቀም በጣም የሚታየው የአፈጻጸም ጥቅም በ git stash ትዕዛዝ ይታያል፣ ይህም በአንዳንድ ሁኔታዎች የአፈጻጸም ፍጥነት 80% ጨምሯል።
  • በማጠራቀሚያው ውስጥ ያልተጠቀሱ (በቅርንጫፎች ወይም መለያዎች ያልተጠቀሱ) የማይደረሱ ነገሮችን ለማሸግ አዲስ የ "ክሩፍ ፓኮች" ዘዴ ተተግብሯል. የማይደረስባቸው ነገሮች በቆሻሻ ሰብሳቢው ይሰረዛሉ፣ ነገር ግን የዘር ሁኔታዎችን ለማስወገድ ከመሰረዛቸው በፊት ለተወሰነ ጊዜ በማከማቻው ውስጥ ይቆዩ። የማይደረስባቸው ነገሮች የሚፈጠሩበትን ጊዜ ለመከታተል ተመሳሳይ ዕቃዎችን በሚቀይሩበት ጊዜ መለያዎችን ማያያዝ አስፈላጊ ነው, ይህም ሁሉም ዕቃዎች የጋራ የለውጥ ጊዜ በሚኖራቸው በአንድ ጥቅል ፋይል ውስጥ ማከማቸት አይፈቅድም. ከዚህ ቀደም እያንዳንዱን ነገር በተለየ ፋይል ውስጥ ማስቀመጥ ገና ለመሰረዝ ብቁ ያልሆኑ ብዙ ቁጥር ያላቸው ትኩስ የማይደረስባቸው ነገሮች ሲኖሩ ችግር አስከትሏል። የታቀደው የ "cruft packs" ዘዴ ሁሉንም የማይደረስባቸውን እቃዎች በአንድ ጥቅል ፋይል ውስጥ እንዲያከማቹ እና የእያንዳንዱን ነገር የማሻሻያ ጊዜ በ ".mtimes" ቅጥያ በፋይል ውስጥ በተከማቸ በተለየ ሠንጠረዥ ውስጥ እንዲያንፀባርቁ ያስችልዎታል.
  • ለዊንዶውስ እና ማክሮስ በፋይል ስርዓቱ ላይ የተደረጉ ለውጦችን ለመከታተል አብሮ የተሰራ ዘዴ አለ, ይህም እንደ "git status" ያሉ ስራዎችን በሚሰሩበት ጊዜ በአጠቃላይ የስራ ዳይሬክተሩ ላይ መደጋገምን ለማስወገድ ያስችልዎታል. ከዚህ ቀደም ለውጦችን ለመከታተል በኤፍኤስ ውስጥ ያሉ ለውጦችን ለመከታተል ውጫዊ መገልገያዎች፣ ለምሳሌ ዋችማን፣ በ መንጠቆዎች ሊገናኙ ይችላሉ፣ ነገር ግን ይህ ተጨማሪ ፕሮግራሞችን እና ውቅረትን መጫን ያስፈልገዋል። አሁን የተገለጸው ተግባር አብሮገነብ ነው እና "git config core.fsmonitor true" በሚለው ትዕዛዝ ሊነቃ ይችላል።
  • በ “git sparse-checkout” ትዕዛዝ ከ“—ኮን” ሁነታ አማራጭን መደገፍ፣ ለከፊል ክሎኒንግ አብነቶችን የመግለጫ ዘዴ ጊዜው ያለፈበት መሆኑ ታውጇል፣ ይህም የማከማቻውን ክፍል ሲወስን ይፈቅዳል የክሎኒንግ ክዋኔው, የ ".gitignore" አገባብ በመጠቀም የነጠላ ፋይሎችን ለመዘርዘር, ይህም ከፊል ኢንዴክሶች ማመቻቸትን አይፈቅድም.
  • ለውጦችን ወደ ዲስክ ለማፍሰስ የ fsync() ጥሪን በማዋቀር ረገድ ተለዋዋጭነት ይጨምራል። ለ "ባች" ማመሳሰል ስልት ድጋፍ ወደ "core.fsyncMethod" መለኪያ ተጨምሯል, ይህም ብዙ ቁጥር ያላቸውን ነጠላ ፋይሎችን በሚጽፉበት ጊዜ በፅሁፍ መሸጎጫ ውስጥ ለውጦችን በማከማቸት ስራን ለማፋጠን ያስችላል, ይህም በአንድ fsync () እንደገና ይጀመራል. ይደውሉ። የ"git add" ትዕዛዝን በመጠቀም 500 ፋይሎች እንዲጨመሩ ምክንያት የሆነው ሙከራው በ0.15 ሰከንድ ውስጥ የተጠናቀቀው አዲሱ ሁነታ ሲነቃ fsync() መደወል ለእያንዳንዱ ፋይል 1.88 ሰከንድ ፈጅቷል እና fsync - 0.06 ሰከንድ ሳይጠቀም ቆይቷል።
  • እንደ “git log” እና “git rev-list” ያሉ የቅርንጫፍ ማቋረጫ ትእዛዞች አሁን “-since-as-filter=X” አማራጭ አላቸው ይህም ከ “X” በላይ የሆኑ ድርጊቶችን መረጃ ለማጣራት ያስችላል። ከ "- ጀምሮ" ከሚለው አማራጭ በተለየ መልኩ አዲሱ ትዕዛዝ ከተጠቀሰው ጊዜ በላይ ከቆየ በኋላ ፍለጋውን የማያቆም ማጣሪያ ሆኖ ተተግብሯል.
  • በ "git remote" ትእዛዝ ውስጥ የ "-v" ባንዲራ ሲገልጹ ስለ ማከማቻው ከፊል ክሎኖች መረጃ ይታያል.
  • "ማስጠንቀቅ"፣ "መሞት" እና "ፍቀድ" የሚሉትን እሴቶች ሊወስድ የሚችል የ"transfer.credentialsInUrl" ቅንብር ታክሏል። በመለኪያው ውስጥ ከተገለጸ "የርቀት. .url ግልጽ ማስረጃዎች፣ የ"ማምጣት" ወይም "ግፋ" ክወና ለመስራት መሞከር የ"transfer.credentialsInUrl" መቼት ወደ "ዳይ" ከተዋቀረ ወይም ወደ "ማስጠንቀቂያ" ከተዋቀረ ማስጠንቀቂያ በስህተት አይሳካም።
  • በነባሪነት ከፐርል ወደ ሲ እንደገና የተፃፈው የ "git add -i" ትዕዛዝ አዲሱ የአስተባባሪ ሁነታ ትግበራ ነቅቷል.

ምንጭ: opennet.ru

አስተያየት ያክሉ