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

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

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

  • Хэсэгчилсэн клончлох боломж тогтворжиж, бүрэн бэлэн байдалд ойртож байгаа бөгөөд энэ нь мэдээллийн зөвхөн нэг хэсгийг шилжүүлэх, хадгалах сангийн бүрэн бус хуулбартай ажиллах боломжийг олгоно. Ердийн клон нь репозитороос бүх өгөгдлийг, түүний дотор өөрчлөлтийн түүхэн дэх файл бүрийн хувилбарыг хуулдаг. Маш том агуулахуудын хувьд өгөгдлийг хуулах нь хөгжүүлэгч зөвхөн файлын дэд хэсгийг сонирхож байсан ч гэсэн урсгал болон дискний зайг ихээхэн хэмжээгээр нэмэгдүүлдэг. Ажиллаж буй эхийн модны зөвхөн хэсгийг авахад хялбар болгохын тулд шинэ хувилбар нь туршилтын "sparse-checkout" команд болон "clone" командын шинэ "--sparse" сонголтыг нэвтрүүлсэн.

    Өмнө нь даалгавраар дамжуулан сонгомол клончлол хийдэг байсан шүүлтүүрүүд шаардлагагүй агуулгыг шүүж, дутуу файлуудыг бөглөхийг идэвхгүй болгохын тулд "-no-checkout" сонголтыг хийнэ. Үүний дараа, тооцоо хийх үйлдлийг гүйцэтгэхийн өмнө core.sparseCheckout тохиргоог идэвхжүүлж, .git/info/sparse-checkout файлд хасагдсан замын загваруудын жагсаалтыг тодорхойлох шаардлагатай байв. Жишээлбэл, 2 ба түүнээс дээш гүнтэй дэд сангаас файлуудыг задлахаас урьдчилан сэргийлэхийн тулд толбогүйгээр хувилахын тулд та дараахийг ажиллуулж болно:

    git clone --filter=blob:none --no-checkout /таны/repository/энд репо
    $cd репо
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git тооцоо хийх.

    Шинэ "git sparse-checkout" команд нь ажлыг ихээхэн хөнгөвчлөх ба бүрэн бус репозитортой ажиллах ажлыг зохион байгуулах үйл явцыг дараах командуудад багасгадаг.

    git clone --filter=blob:none --sparse /таны/repository/энд репо
    git sparse-checkout set /path/to/check/out

    Sparse-checkout команд нь .git/info/sparse-checkout-г гараар тохируулахгүйгээр тооцоо хийх (тогтоох) замын жагсаалтыг тохируулахаас гадна замуудын одоогийн жагсаалтыг (жагсаалт) харуулах, хэсэгчилсэн тооцоог идэвхжүүлэх эсвэл идэвхгүй болгох (идэвхжүүлэх) боломжийг олгодог. / идэвхгүй болгох).

    Маш том агуулах болон загваруудын жагсаалттай ажиллахыг оновчтой болгохын тулд "git config core.sparseCheckoutCone", энэ нь зөвшөөрөгдсөн хэв маягийг хязгаарладаг (дурын .gitignore загварын оронд та өгөгдсөн дэд директор доторх бүх зам болон бүх файлыг шалгах эсэхийг зааж өгч болно). Жишээлбэл, хэрэв том агуулах нь "A/B/C" лавлахтай бөгөөд бүх ажил "C" дэд директорт төвлөрч байвал sparseCheckoutCone горимыг идэвхжүүлэхэд "git sparse-checkout set A/B/" командыг өгнө. C" нь "C"-ийн агуулгыг бүхэлд нь задлах боловч "A" ба "B" хэсгээс зөвхөн "C"-тэй ажиллахад шаардлагатай хэсгүүдийг задлах болно.

  • Баримт бичгээс ("git rebase -h") "--preserve-merges" сонголтын бүх лавлагааг хассан бөгөөд энэ нь хуучирсан ба оронд нь багц үүрэг шилжүүлэхэд ашиглагдах ёстой.git rebase --rebase-merges".
  • Захидлын жагсаалт руу илгээсэн засварууд бүхий мессежүүдийн уншигдах чадварыг сайжруулахын тулд "git format-patch —cover-from-description subject" гэсэн сонголтыг нэмсэн бөгөөд заасан тохиолдолд салбарын тайлбарын текстийн эхний догол мөрийг сэдэв болгон ашигладаг. багц нөхөөсийг хамгаалах захидал.
  • "git apply -3way" команд болон "merge.conflictStyle" тохиргоог хослуулан ашиглахад дэмжлэг үзүүлэв ("git apply" нь одоо оролдлого хийсний дараа зөрчилдөөнийг шийдвэрлэх шаардлагатай үед merge.conflictStyle-ийн зөрчлийн тайлбарын загварыг харгалзан үзнэ. репозитор руу нөхөх файл хэрэглэх).
  • "git diff/grep --show-function/-function-context" гэх мэт үйлдлүүдэд хэрэглэгддэг функцын тодорхойлолтын кодыг хэлний программ дахь функцын хил хязгаарыг тодорхойлоход дэмжлэг үзүүлэх зорилгоор өргөтгөсөн. Эллексир.
  • "git add", "git commit", "git reset" болон бусад командуудад шинэ сонголт нэмэгдсэн - "-pathspec-from-file" нь файл эсвэл оролтын урсгалаас замуудын жагсаалтыг ачаалах боломжтой болгодог. , тэдгээрийг тушаалын мөрөнд жагсаахын оронд.
  • Үйлдэл бичих үед лавлах түвшинд нэр солихыг илрүүлэх асуудал шийдэгдсэн. Дэд директорийн агуулгыг репозиторын үндэс рүү зөөсөн бол тодорхойлолт ажиллахгүй.
  • Шинэчилсэн "git add -i" командын анхны хэрэгжилтийг санал болгосноор Perl-ээс C руу дахин бичсэн өөрчилсөн контентыг интерактив байдлаар нэмэх боломжтой. "git add -p" командын ижил төстэй дахин боловсруулалт хийгдэж байна.
  • “git log –graph” командыг дахин засварлаж, репозитор дахь өөрчлөлтийн түүх бүхий графикийн ASCII дүрсийг үүсгэсэн. Дахин боловсруулалт нь түүхийн бүтцийг гажуудуулахгүйгээр гаралтыг мэдэгдэхүйц сайжруулж, хялбаршуулах боломжийг олгосон бөгөөд энэ нь жишээлбэл, терминалын шугамын өргөнөөс давсан зурагтай холбоотой асуудлыг шийдсэн.
  • "git log --format=.." сонголт нь гаралтын форматыг өөрчлөх,
    "@" тэмдгийн өмнө заасан имэйл хаягийн зөвхөн хэсгийг харуулахын тулд "l/L" тугуудын дэмжлэгтэйгээр өргөтгөсөн (жишээ нь, бүх хөгжүүлэгчид ижил домэйн дэх бүх имэйлтэй үед ашигтай).

  • "git submodule" командад "set-url" дэд командыг нэмсэн.
  • -д шилжих бэлтгэл ажлын хүрээнд тестийн иж бүрдлийг шинэчилсэн
    SHA-2-ийн оронд SHA-1 хэшлэх алгоритм.

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

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