Git 2.35 эх сурвалжийн хяналтын хувилбар

Хоёр сарын хөгжүүлэлтийн дараа Git 2.35 тараагдсан эх сурвалжийн хяналтын систем гарсан. Git бол хамгийн алдартай, найдвартай, өндөр гүйцэтгэлтэй хувилбарын хяналтын системүүдийн нэг бөгөөд салбарлах, нэгтгэх дээр суурилсан уян хатан шугаман бус хөгжүүлэлтийн хэрэгслээр хангадаг. Түүхийн бүрэн бүтэн байдал, буцаан хүчинтэй өөрчлөлтийг эсэргүүцэхийн тулд амлалт бүрт өмнөх түүхийг бүхэлд нь далд хэшлэх аргыг ашигладаг бөгөөд хөгжүүлэгчдийн тоон гарын үсгээр хувь хүний ​​шошго, амлалтуудыг баталгаажуулах боломжтой.

Өмнөх хувилбартай харьцуулахад шинэ хувилбарт 494 өөрчлөлт орсон бөгөөд 93 хөгжүүлэгчийн оролцоотойгоор бэлтгэгдсэнээс 35 нь анх удаа хөгжүүлэлтэд оролцсон байна. Гол инноваци:

  • Git объектуудад дижитал гарын үсэг зурахын тулд SSH түлхүүрүүдийг ашиглах боломжууд өргөжсөн. Хэд хэдэн түлхүүрийн хүчинтэй байх хугацааг хязгаарлахын тулд "хүчинтэй-өмнө" ба "хүчинтэй-дараа" OpenSSH удирдамжийн дэмжлэгийг нэмсэн бөгөөд үүний тусламжтайгаар та түлхүүрийг хөгжүүлэгчдийн аль нэгээр эргүүлсний дараа гарын үсэгтэй зөв ажиллах боломжтой болно. Үүнээс өмнө хуучин болон шинэ түлхүүрээр гарын үсгийг салгахад асуудал гарч байсан - хэрэв та хуучин түлхүүрээ устгавал түүгээр хийсэн гарын үсгийг шалгах боломжгүй, хэрэв та үүнийг орхисон бол үүнийг хийх боломжтой хэвээр байх болно. өөр түлхүүрээр сольсон хуучин түлхүүрээр шинэ гарын үсэг үүсгэх. valid-before болон valid-after-ийг ашигласнаар та гарын үсэг үүсгэгдсэн хугацаанаас хамааран түлхүүрүүдийн хамрах хүрээг ялгаж болно.
  • Нэгтгэх явцад гарсан зөрчлийн талаарх мэдээллийг харуулах горимыг сонгох боломжийг олгодог merge.conflictStyle тохиргоонд зөрчилдөөний эхэн эсвэл төгсгөлд заасан бүх стандарт мөрийг зөрчлийн гадна шилжүүлэх "zdiff3" горимын дэмжлэг гарч ирэв. талбай бөгөөд энэ нь мэдээллийг илүү нягт нямбай харуулах боломжийг олгодог.
  • "git stash" командад "-үе шаттай" горим нэмэгдсэн бөгөөд энэ нь зөвхөн индекст оруулсан өөрчлөлтийг нуух боломжийг олгодог, жишээлбэл, эхлээд нэмэхийн тулд зарим цогц өөрчлөлтийг түр хойшлуулах шаардлагатай үед. аль хэдийн бэлэн байгаа зүйл, хэсэг хугацааны дараа үлдсэнийг нь шийдвэрлэх. Энэ горим нь "git commit" командтай төстэй бөгөөд зөвхөн индекст оруулсан өөрчлөлтийг бичдэг боловч "git stash —staged"-д шинэ амлалт үүсгэхийн оронд үр дүн нь stash түр хэсэгт хадгалагдана. Өөрчлөлт хийх шаардлагатай бол тэдгээрийг "git stash pop" командын тусламжтайгаар буцааж болно.
  • "git log" командад "-format=%(describe)" гэсэн шинэ формат тодорхойлогч нэмэгдсэн бөгөөд энэ нь "git log"-ын гаралтыг "git describe" командын гаралттай нэгтгэх боломжийг олгодог. "git describe"-ын параметрүүдийг тодорхойлогч дотор шууд зааж өгдөг ("-format=%(describe:match=) ,хасах= )"), үүнд та товчилсон шошго ("-format=%(тайлбарлах:tags=) оруулах боломжтой. )") ба объектыг таних арван арван тэмдэгтийн тоог тохируулна уу (“—format=%(describe:abbrev=) )"). Жишээлбэл, шошгонд нь хувилбарт нэр дэвшигчийн шошго байхгүй, 8 тэмдэгттэй танигчийг зааж өгөх сүүлийн 8 коммитыг жагсаахын тулд та тушаалыг ашиглаж болно: $ git log -8 —format='%(describe:exclude=*-rc) *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643b. v2-95b. gb94bd056 bbc2.34.1f642 v56-95-gffb8f7d v2.34.1-203- gdf9c2980902adeb2.34.1 v640-3-g41b212a2.34.1
  • User.signingKey тохиргоо нь одоо "ssh-" төрлөөр хязгаарлагдахгүй шинэ төрлийн түлхүүрүүдийг дэмждэг бөгөөд түлхүүр рүү очих файлын замыг бүрэн зааж өгдөг. Альтернатив төрлүүдийг "key::" угтвар ашиглан зааж өгсөн болно, жишээ нь ECDSA түлхүүрүүдийн хувьд "key::ecdsa-sha2-nistp256".
  • "-гистограм" горимд гарсан өөрчлөлтүүдийн жагсаалтыг гаргах хурд, мөн өнгөний ялгаа дахь орон зайг тодруулахыг хянадаг "-color-moved-ws" сонголтыг ашиглах үед мэдэгдэхүйц нэмэгдсэн.
  • "git jump" команд нь нэгтгэх зөрчилдөөнийг задлан шинжлэх, ялгааг харах эсвэл хайлтын үйлдлийг гүйцэтгэх үед файлын хүссэн байрлал руу яг үсрэх тухай мэдээллийг Vim-д өгөхөд ашигладаг бөгөөд нэгтгэсэн зөрчилдөөнийг нарийсгах боломжийг олгодог. Жишээлбэл, үйлдлүүдийг зөвхөн "foo" лавлахаар хязгаарлахын тулд та "git jump merge - foo", "Баримт бичиг" санг боловсруулахаас хасахын тулд "git jump merge - ':^Documentation'" гэж зааж өгч болно.
  • Объектуудын хэмжээг илэрхийлэх утгуудын хувьд "unsigned long" биш харин "size_t" төрлийн хэрэглээг стандартчилах ажил хийгдсэн бөгөөд энэ нь 4 ГБ-аас дээш хэмжээтэй файлтай "цэвэр" болон "толбо" шүүлтүүрийг ашиглах боломжтой болсон. LLP64 өгөгдлийн загвар бүхий платформыг оруулаад бүх платформ дээр 4 байтаар хязгаарлагдсан "unsigned long" төрөл.
  • "git am" командад "-empty=(stop|drop|haep)" сонголтыг нэмсэн бөгөөд энэ нь шуудангийн хайрцгаас засваруудыг задлан шинжлэх үед засвар агуулаагүй хоосон мессежүүдийн үйлдлийг сонгох боломжийг олгодог. "Stop" утга нь нөхөөсийг бүхэлд нь дуусгаж, "дусал" нь хоосон нөхөөсийг алгасаж, "хадгалах" нь хоосон амлалт үүсгэх болно.
  • Гүйцэтгэлийг сайжруулж, зай хэмнэхийн тулд "git reset", "git diff", "git blame", "git fetch", "git pull" болон "git ls-files" командуудад хэсэгчилсэн индекс (сийрэг индекс)-ийн дэмжлэгийг нэмсэн. хэсэгчилсэн хувилах үйлдлүүд (сийрэг шалгах) хийгддэг агуулахууд.
  • "git sparse-checkout init" командыг хуучирсан бөгөөд "git sparse-checkout set"-ээр солих хэрэгтэй.
  • Хадгалах газарт салбар, шошго зэрэг лавлагааг хадгалах шинэ "буцааж болох" backend-ийн анхны хэрэгжилтийг нэмсэн. Шинэ backend нь JGit төслийн ашигладаг блок хадгалах санг ашигладаг бөгөөд маш олон тооны лавлагааг хадгалахад оновчтой болсон. Backend нь refs системтэй хараахан нэгтгэгдээгүй байгаа бөгөөд практик хэрэглээнд бэлэн биш байна.
  • "git grep" командын өнгөт палитрыг GNU grep хэрэгсэлд тохируулан тохируулсан.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх