Git 2.22 тараагдсан эх үүсвэрийн хяналтын системийн хувилбар

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

Өмнөх хувилбартай харьцуулахад шинэ хувилбарт 745 өөрчлөлт орсон бөгөөд 74 хөгжүүлэгчийн оролцоотойгоор бэлтгэгдсэнээс 18 нь анх удаа хөгжүүлэлтэд оролцсон байна. Үндсэн инноваци:

  • 1.18 хувилбараас хойш ашиглах боломжтой "git rebase --rebase-merges" шинэ commit rebase горим нь одоо хуучирсан хуучин "--preserve-merges" сонголтыг орлоно. "git rebase" үйлдлийг хэд хэдэн үүрэг даалгаврыг шинэ суурь коммитоор орлуулах, жишээлбэл, зарим шинэ функцийг хөгжүүлж буй тусдаа салбарыг үндсэн салбарын одоогийн төлөв рүү шилжүүлэхэд ашигладаг бөгөөд үүнд салааны дараа нэмсэн засварууд орно. :

    o - o - o (миний онцлог)

    /

    o - o - o - o - o (мастер)

    o - o - o (миний онцлог)

    /

    o - o - o - o - o (мастер)

    Шилжүүлсэн салбар дахь салбар бүтцийг хадгалахын тулд интерактив горимд (git rebase -i --preserve-merges) ажиллаж байх үед "--preserve-merges" сонголтыг өмнө нь ашиглаж болох байсан, гэхдээ энэ нь үйл ажиллагааны түүхийг засварлах боломжийг олгодог. агуулахын бүтцийг бүрэн хадгалах баталгааг өгөөгүй. Шинэ "--rebase-merges" горим нь шилжүүлж буй салбар дахь өөрчлөлтийн бүтцийг хадгалах боломжийг олгодог бөгөөд үүргүүдийг устгах, дахин бүлэглэх, нэрийг өөрчлөх зэрэг олон төрлийн интерактив үйлдлүүдийг хийх боломжийг олгодог.

    Жишээлбэл, "--rebase-merges" Энэ нь олгодог шилжүүлсэн салбар дахь салбар бүтцийг хадгалахын зэрэгцээ тусдаа салбараас шинэ мастер салбар руу амлалтуудыг дахин байршуулж, үүргийн тэмдэглэлд зарим өөрчлөлтийг шууд хийнэ үү.

  • “git branch new A...B” болон “git checkout -b new” байгууламжуудыг ашиглан өөр хоёр салбар (нийтэх суурь, нийтлэг өвөг дээдэст холбогдох)-ийн нэгтгэх суурийг тодорхойлсон үр дүнд тулгуурлан шинэ салбар үүсгэх дэмжлэг нэмэгдсэн. A...B", "A ...B" нь заасан хоёр үүргийн хооронд нэгтгэх баазыг тодорхойлохыг агуулна. Энэ нь "git checkout A...B" нь HEAD-ийг үндсэн коммит болон "diff A"-д шилжүүлэхтэй адил юм. ..B" нь "В"-ын хоорондох өөрчлөлтийг "А"-тай ижил "Өвөг дээдсийн"-ийн өөрчлөлтийг харуулж байна.

    Жишээ нь, тусдаа my-feature салбар дээр ажиллаж байхдаа энэ функцийг өөр салбараас, жишээлбэл, миний функцийн салбарыг шалгасан үндсэн салбар дахь нэг газраас эхлүүлэхийг хүсвэл ашиглаж болно. Өмнө нь энэ нь өөрчлөлтийн бүртгэлийг гараар шалгах шаардлагатай байсан бөгөөд хэрэв танд өөрчлөлт ихтэй байсан бол тохиромжгүй байсан бөгөөд дараа нь "git merge-base master my-feature"-г ажиллуулж, master болон my-feature салбаруудын хооронд нэгтгэх суурийн хэшийг тооцоолох шаардлагатай байсан. мөн нийтлэг өвөг “ git салбар миний-бусад-боломжийн хэш”-тэй холбоотой шинэ салбар үүсгэх. Git 2.22 дээр та "git branch my-other-feature A...B" синтаксийг ашиглан өөр хоёр салбарыг нэгтгэх суурьтай харьцуулахад салбар үүсгэж болно;

  • Тооцоо хийх явцад олж авсан салбарын нэрийг харуулах "git branch --show-current" сонголтыг нэмсэн;
  • "git checkout —no-overlay — dir" сонголтыг нэмсэн бөгөөд энэ нь тооцоо хийх үйлдлийг гүйцэтгэхдээ dir лавлахын агуулгыг мастер салбарын төлөвт бүрэн нийцэх хэлбэрт оруулах боломжийг олгодог. Жишээлбэл, хэрэв dir лавлахын локал хуулбар дээр мастер салбарт байхгүй файл байгаа бол анхдагчаар "git checkout master - dir"-ийг ажиллуулахад энэ нь үлдэх бөгөөд хэрэв "--no-overlay" байвал. ” сонголтыг зааж өгсөн бол энэ нь устах болно;
  • "git diff" команд нь опционуудыг задлан шинжлэхэд бүх нийтийн API ашигладаг бөгөөд энэ нь сонголтын зохицуулалтыг бусад git хэрэгслүүдтэй нэгтгэх боломжийг олгодог. Жишээ нь, "git diff"-д бүх сонголтууд нь антагонистуудтай ("--функц-контекст" ба "--функц-контекст");
  • “git log” гаралт дахь амлалтад хавсаргасан өргөтгөсөн хаягуудыг шүүх боломжийг нэмсэн (“трейлер” - гарын үсэг зурсан, хамтран зохиогч гэх мэт нэмэлт мэдээллийн тугнууд). Шошгыг түлхүүр болон утгаараа шүүх боломжтой, жишээлбэл:
    "git log --pretty="%(чиргүүлүүд:түлхүүр=зөвхөн үнэлдэг)";

  • Илүү уян хатан, бүтэцтэй гаралтын форматыг санал болгодог Trace2 хэмээх шинэ мөрдөх хөдөлгүүр нэмэгдсэн. Trace2 нь гүйцэтгэсэн үйлдлүүд болон гүйцэтгэлийн өгөгдлийг илүү нарийвчилсан дүн шинжилгээ хийх, дибаг хийх зорилгоор телеметрийг цуглуулах боломжийг олгодог (хэрэглэгчийг хэрэглэгч томилдог, гаднаас ямар ч өгөгдөл илгээдэггүй);
  • "git bisect" тайланг илүү уншигдахуйц болгож, асуудалтай үйлдлүүдийг илүү тодорхой тодруулж, файл бүрийн өөрчлөлтийн хураангуй статистикийг (өөрчлөгдсөн мөрийн тооны түвшинд) харуулах болно;
  • Лавлах нэрийн өөрчлөлтийг тодорхойлох эвристикийг дахин боловсруулж, шошгоны нэрийг өөрчилсөн хуурамч суулгалтыг арилгах болно. Эргэлзээтэй байгаа бол ийм лавлахууд одоо зөрчилтэй гэж тэмдэглэгдсэн;
  • Таныг өөр шошгон дээр шошго суулгахыг оролдох үед анхааруулга гарч ирдэг бөгөөд энэ нь ихэвчлэн алдаагаар хийгдсэн бөгөөд шошгыг буруу үйлдлээр тохируулахад хүргэдэг (жишээлбэл, "git tag -f -m "шинэчилсэн мессеж" гэх мэт бүтэц). my-tag1 my-tag2″ нь хуучин таг дээр шошго үүсгэхэд хүргэдэг бол хөгжүүлэгч шинэ тагийг хуучин тагны зааж өгсөн үүрэгт суулгана гэж бодож байсан);
  • Битмап репозиторууд (дискэнд суурилсан "хүрч болох битмап" бүтэц)-д үүсгэхийг идэвхжүүлсэн бөгөөд энэ нь амлалт тус бүрт ашиглах боломжтой объектуудын багцын талаарх мэдээллийг хадгалж, үндсэн объект байгаа эсэхийг хурдан тодорхойлох боломжийг олгодог. Энэ бүтэц нь өгөгдөл хайх үйлдлүүдийг (git fetch) гүйцэтгэх хугацааг эрс багасгадаг.

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

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