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) төдийгүй лавлагаа (.git/refs), reflog болон packfiles зэрэг бусад git бүтцэд ашиглах боломжийг олгодог.

    core.fsync хувьсагч нь бичих үйлдлийн дараа fsync дуудагдах дотоод Git бүтцийн жагсаалтыг зааж өгөх боломжийг олгодог. 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" команд нь одоо "--oid-only" ("--object-only") сонголттой болсон. "--name-only"-тэй адил энэ нь скриптээс дуудлагыг хялбарчлахын тулд зөвхөн объектын ID-г гаргадаг. "--format" сонголтыг мөн хэрэгжүүлсэн бөгөөд энэ нь танд горим, төрөл, нэр, хэмжээ зэрэг мэдээллийг нэгтгэх замаар захиалгат гаралтын форматыг тодорхойлох боломжийг олгодог.
  • "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

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster