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

Тархсан эх кодын удирдлагын систем болох Git 2.56 хувилбар гарсан. Git нь GPLv2+ лицензийн дагуу лицензлэгдсэн. Өмнөх хувилбартай харьцуулахад шинэ хувилбар нь 104 хөгжүүлэгчийн бэлтгэсэн 748 өөрчлөлтийг багтаасан бөгөөд тэдгээрийн 39 нь Git хөгжүүлэлтэд шинээр орсон байна. Гол шинэ боломжууд (1, 2, 3):

  • Салбаруудыг нэгтгэх үед зөрчлийг шийдвэрлэхийн тулд "git add --resolved" горимыг нэмсэн. Энэ горим нь зөрчилдөөний тэмдэглэгээ байгаа эсэхийг файлуудаас шалгаж, хэрэв тэмдэглэгээ дор хаяж нэг файлд илэрсэн бол алдаа буцаана, ямар ч файлыг индексжүүлдэггүй бөгөөд залруулах шаардлагатай файлуудын жагсаалтыг харуулдаг. "git add --update" командаас ялгаатай нь энэхүү шинэ горим нь зөвхөн зөрчилдөөний төлөвт байгаа файлуудыг боловсруулж, зөрчилтэй холбоогүй өөрчлөгдсөн файлуудыг үл тоомсорлодог. Энэ нь ажлын санд өөр дуусаагүй засварууд байсан ч салбар нэгтгэлийг аюулгүйгээр дуусгах боломжийг олгодог ("git add --update" команд нь ажлын санд өмнө нь хянаж байсан бүх өөрчлөгдсөн файлуудыг индекс рүү нэмсэн).
  • Салбаруудыг нэгтгэх болон комментуудыг харьцуулах үед хамгийн сүүлийн үеийн нийтлэг комментуудыг хайх алгоритмыг оновчтой болгосноор томоохон репозиторуудтай ажиллах нь мэдэгдэхүйц хурдассан. Одоо энэ үйл явц нь зөвхөн нэг салбарт хамаарах комментуудыг авч үздэг бөгөөд өөрчлөлтийн түүхийг цаашид судлахад цаг үрэхгүйгээр бүх боломжит нийтлэг өвөг дээдсийг олсны дараа сканнердах ажлыг шууд зогсоох боломжийг олгодог. Нэг туршсан репозиторт хайлтын хурд дунджаар 20 дахин нэмэгдсэн бол өөр нэг репозиторт хурд нь 70 дахин нэмэгдсэн. Цөмтэй хамт репозиторт "git merge-base --all v4.8 v4.9" командыг ажиллуулахад Linux Тэнгисийн шатны тоо 167 мянгаас 3.8 мянга болж буурсан.
  • "--path-walk" дахин савлах горимыг серверийн хэрэглээнд тохируулан өөрчилсөн бөгөөд энэ нь обьектуудыг сангийн мод дахь замаар нь бүлэглэх замаар илүү авсаархан багц файлуудыг үүсгэх боломжийг олгодог (жишээлбэл, Fluent UI репозиторын хувьд "--path-walk" функцийг ашигласнаар багц файлын хэмжээг 558 MB-аас 164 MB болгон бууруулсан). Шинэ хувилбар нь "--path-walk" горимыг Git хостинг үйлчилгээнүүд ажлыг хурдасгах, гол репозитороос салаа тусгаарлахад ашигладаг хүртээмжтэй битмап болон дельта арлуудтай хамт ашиглахыг дэмждэг.
  • Том репозиторуудад илүүдэл тооцоолол хийхэд хүргэдэг саад бэрхшээлийг арилгасан: reftable руу бичих үед шаардлагагүй файлын төлөвийн шалгалтыг арилгасан; шинэ багц файл оруулах бүрт жагсаалтыг дахин сканнердах ажиллагааг арилгасан; хуримтлагдсан их хэмжээний устгалын бичлэг бүхий reftable үйлдлүүдийг хурдасгасан; файлын замын хязгаарлалтыг тодорхойлох үед git diff гүйцэтгэлийг оновчтой болгосон. Эдгээр оновчлолын дараа олон тооны устгалттай reftable үйлдлүүдийг 65 дахин хурдасгасан (13 секундээс 0.2 секунд хүртэл) бөгөөд индекст 500000 зүйл бүхий Chromium репозитор дахь асуудалтай git diff команд одоо 8 минутын оронд 0.07 секунд зарцуулдаг болсон.
  • Өөрчлөлтийн түүхийг дахин бичих боломжийг олгодог туршилтын "git history" командыг сонгосон коммитийг устгаж, түүний үр удамыг эцэг коммитэд автоматаар холбодог "git history drop" үйлдэлээр шинэчилсэн.
  • Өөрчлөлтүүд нь аль хэдийн гадаад репозиторт хийгдсэн орон нутгийн салбаруудын бүлгүүдийг аюулгүй устгахын тулд "git branch --delete-merged 'origin/*' 'topic-*'" командыг нэмсэн. Салбарууд болон репозиторуудыг шүүхэд Wildcards ашиглаж болно. "--dry-run" тугийг үйлдлийг бодитоор гүйцэтгэхгүйгээр устгах нэр дэвшигчдийг шинжлэхэд ашиглаж болно.
  • Лавлагаа үүсгэх, устгах, нэр өөрчлөх болон шинэчлэх доод түвшний үйлдлүүдийг нэгтгэсэн "git refs create|update|delete|rename" командыг нэмсэн.
  • "git bisect run" команд одоо "--reset-when-found=[" сонголттой болсон. ]", энэ нь хайлт эхлэхээс өмнөх төлөвт репозиторийг автоматаар буцаадаг эсвэл "git bisect reset" командыг тусад нь ажиллуулахгүйгээр асуудалтай коммитийг идэвхтэй байлгадаг.
  • 'git replay' команд нь одоо 'git rebase --no-rebase-merges'-тэй төстэй боловч ажлын мод руу хандахгүйгээр хавтгай нэгтгэх топологийг ашиглахын тулд '--linearize' тугтай болсон.
  • "git log --follow" команд нь одоо дэд салбаруудыг нэгтгэх гэх мэт шугаман бус коммитийн түүх дэх файлын нэрийг хянадаг болсон. Файлын замыг одоо эцэг коммит бүрийн хувьд тусад нь бүртгэдэг болсон тул үр дүн нь коммитийн түүхийг дайрах дарааллаас хамааралгүй болно.
  • Одоогийн индекст ашиглагдаагүй гадаад репозитороос хүсэлтээр татаж авсан том блокуудыг устгахын тулд "git repack -a --filter=blob:limit=1m --drop-filtered" командыг ашиглах боломжийг нэмсэн. Эдгээр объектууд ирээдүйд хандах үед автоматаар дахин татагдах болно.
  • Олон бие даасан үндэстэй графикуудад зориулсан "git log --graph" команд нь одоо холбоогүй комментуудыг тодорхой ялгахын тулд догол мөр нэмж байна.
  • "git push origin main"-ийн оронд "git push origin/main" эсвэл "git branch --set-upstream-to=origin/main"-ийн оронд "git branch --set-upstream-to origin main" гэж заах гэх мэт нийтлэг алдаануудыг илрүүлж, зөв ​​хувилбарыг хэрхэн ашиглах талаар зөвлөгөөг харуулав.

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

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