Rilis sistem kontrol sumber sing disebarake Git 2.37 wis diumumake. Git minangka salah sawijining sistem kontrol versi sing paling populer, dipercaya lan kinerja dhuwur, nyedhiyakake alat pangembangan non-linear sing fleksibel adhedhasar cabang lan gabung. Kanggo mesthekake integritas sejarah lan resistensi kanggo owah-owahan retroaktif, hashing implisit saka kabeh riwayat sadurunge digunakake ing saben komitmen; uga bisa kanggo nandhani tag individu lan commit karo teken digital saka pangembang.
Dibandhingake karo rilis sadurunge, 395 owah-owahan diadopsi menyang versi anyar, disiapake kanthi partisipasi 75 pangembang, sing 20 pisanan melu pembangunan. Inovasi utama:
- Mekanisme indeks parsial (indeks jarang), mung kalebu bagean saka gudang, wis disiapake kanggo panggunaan sing akeh. Indeks parsial bisa nambah kinerja lan ngirit ruang ing repositori sing nindakake operasi kloning parsial (sparse-checkout) utawa nggarap salinan repositori sing ora lengkap. Rilis anyar ngrampungake integrasi indeks parsial menyang git show, git sparse-checkout, lan perintah git stash. Keuntungan kinerja sing paling katon saka nggunakake indeks parsial katon karo printah "git stash", sing wis nambah 80% kacepetan eksekusi ing sawetara kahanan.
- Mekanisme "cruft packs" anyar wis dileksanakake kanggo ngemas obyek sing ora bisa digayuh sing ora dirujuk ing gudang (ora dirujuk dening cabang utawa tag). Obyek sing ora bisa digayuh bakal dibusak dening tukang sampah, nanging tetep ana ing panyimpenan kanggo wektu tartamtu sadurunge dibusak kanggo ngindhari kahanan balapan. Kanggo nglacak wektu kedadeyan obyek sing ora bisa digayuh, kudu dilampirake tag karo wektu owah-owahan obyek sing padha, sing ora ngidini nyimpen ing file paket sing kabeh obyek duwe wektu owah-owahan umum. Sadurunge, nyimpen saben obyek ing file kapisah mimpin kanggo masalah nalika ana nomer akeh seger, obyek unreachable sing durung layak kanggo mbusak. Mekanisme "kruft packs" ngajokaken ngijini sampeyan kanggo nyimpen kabeh obyek unreachable ing file Pack siji, lan nggambarake data ing wektu modifikasi saben obyek ing meja kapisah disimpen ing file karo extension ".mtimes".
- Kanggo Windows lan macOS, ana mekanisme sing dibangun kanggo nglacak owah-owahan ing sistem file, sing ngidini sampeyan ora ngulang kabeh direktori kerja nalika nindakake operasi kayata "status git". Sadurunge, kanggo nglacak owah-owahan, keperluan eksternal kanggo nglacak owah-owahan ing FS, kayata Watchman, bisa disambungake liwat pancingan, nanging iki mbutuhake instalasi program lan konfigurasi tambahan. Saiki fungsi sing ditemtokake wis dibangun lan bisa diaktifake kanthi printah "git config core.fsmonitor true".
- Ing printah "git sparse-checkout", dhukungan kanggo alternatif kanggo mode "-cone", cara kanggo nemtokake template kanggo kloning parsial, wis diumumake lungse, sing ngidini, nalika nemtokake bagean saka gudang sing tundhuk. operasi kloning, kanggo dhaptar file individu nggunakake sintaksis ".gitignore", sing ora ngidini nggunakake indeks sebagean Optimization.
- Tambah keluwesan ing configuring telpon fsync () kanggo flush owahan kanggo disk. Dhukungan kanggo "batch" strategi sinkronisasi wis ditambahake menyang "core.fsyncMethod" parameter, sing ngidini nyepetake karya nalika nulis nomer akeh file individu dening accumulating owah-owahan ing cache writeback, kang direset dening fsync single () nelpon. Tes, sing nyebabake 500 file ditambahake nggunakake printah "git add", rampung ing 0.15 detik nalika mode anyar diaktifake, nalika nelpon fsync () njupuk 1.88 detik kanggo saben file, lan tanpa nggunakake fsync - 0.06 detik .
- Printah traversal cabang kaya "git log" lan "git rev-list" saiki duwe pilihan "-since-as-filter = X" sing ngidini sampeyan nyaring informasi babagan komitmen sing luwih lawas tinimbang "X". Ora kaya opsi "-wiwit", printah anyar dileksanakake minangka saringan sing ora mungkasi telusuran sawise komit pisanan luwih lawas tinimbang wektu sing ditemtokake.
- Ing printah "git remot", nalika nemtokake gendera "-v", informasi babagan klon sebagian saka repositori ditampilake.
- Ditambahake setelan "transfer.credentialsInUrl", sing bisa njupuk nilai "warning", "mati" lan "ngidini". Yen kasebut ing parameter "remote. .url" kredensial plaintext, nyoba kanggo nindakake operasi "njupuk" utawa "push" bakal gagal karo kesalahan yen setelan "transfer.credentialsInUrl" disetel kanggo "mati", utawa bebaya yen disetel kanggo "ngelekake".
- Kanthi gawan, implementasine mode interaktif anyar saka printah "git add -i", ditulis maneh saka Perl menyang C, diaktifake.
Source: opennet.ru
