Git 2.38 bronbeheervrystelling

Die vrystelling van die verspreide bronbeheerstelsel Git 2.38 is aangekondig. Git is een van die gewildste, betroubare en hoëprestasie-weergawebeheerstelsels, wat buigsame nie-lineêre ontwikkelingsinstrumente bied wat gebaseer is op vertakking en samesmelting. Om die integriteit van die geskiedenis en weerstand teen terugwerkende veranderinge te verseker, word implisiete hashing van die hele vorige geskiedenis in elke commit gebruik; dit is ook moontlik om individuele etikette en commits te sertifiseer met digitale handtekeninge van die ontwikkelaars.

In vergelyking met die vorige weergawe, het die nuwe weergawe 699 veranderinge ingesluit, voorberei met die deelname van 92 ontwikkelaars, waarvan 24 vir die eerste keer aan ontwikkeling deelgeneem het. Belangrikste innovasies:

  • Die hoofstruktuur sluit die "skalêre" nut in, ontwikkel deur Microsoft vir die bestuur van groot bewaarplekke. Die hulpprogram is oorspronklik in C# geskryf, maar git bevat 'n gewysigde weergawe in C. Die nuwe nut verskil van die git-opdrag deur by verstek bykomende kenmerke en instellings te aktiveer wat prestasie beïnvloed wanneer daar met baie groot bewaarplekke gewerk word. By die gebruik van skalaar geld dit byvoorbeeld:
    • Gedeeltelike kloning om te werk met 'n onvolledige kopie van die bewaarplek.
    • Ingeboude meganisme vir die opsporing van veranderinge in die lêerstelsel (FSMonitor), wat jou toelaat om te doen sonder om deur die hele werkgids te soek.
    • Indekse wat voorwerpe in verskillende paklêers dek (multi-pack).
    • commit-grafieklêers met 'n commit-grafiekindeks wat gebruik word om toegang tot commit-inligting te optimaliseer.
    • Agtergrond periodieke werk om die optimale struktuur van die bewaarplek in die agtergrond te handhaaf, sonder om die interaktiewe sessie te blokkeer (werk word een keer per uur gedoen om proaktief vars voorwerpe van die afgeleë bewaarplek af te laai en die lêer op te dateer met die commit grafiek, en die proses van verpakking die bewaarplek word elke aand begin).
    • "sparseCheckoutCone" -modus, wat toegelate patrone tydens gedeeltelike kloning beperk.
  • Het 'n --update-refs opsie by die "git rebase" opdrag gevoeg om afhanklike takke op te dateer wat oorvleuel met die takke wat geskuif word, eerder as om elke afhanklike tak handmatig te betaal om na die vereiste commit oor te skakel.
  • Het die "git rm"-opdrag versoenbaar gemaak met gedeeltelike indekse.
  • Verbeter die gedrag van die "git mv AB" opdrag wanneer 'n lêer geskuif word vanaf 'n werkspasie met gedeeltelike indekse in "cone" af na 'n eksterne omvang wat nie hierdie modus het nie.
  • Die bitmap-lêerformaat is geoptimaliseer om met groot bewaarplekke te werk - 'n opsionele indekstabel is bygevoeg met 'n lys van geselekteerde commits en hul afwykings.
  • Die "git merge-tree"-opdrag implementeer 'n nuwe modus waarin, gebaseer op twee gespesifiseerde commits, 'n boom met die resultaat van die samesmelting bereken word, asof die geskiedenisse van hierdie commits saamgevoeg is.
  • Bygevoeg "safe.barerepository" instelling om die vermoë te beheer om kaal bewaarplekke (bewaarplekke wat nie 'n werkende boom bevat nie) binne ander git-bewaarplekke te beheer. As dit op "eksplisiet" gestel is, sal dit moontlik wees om met kaal bewaarplekke te werk wat slegs in die boonste gids geleë is. Om kaal bewaarplekke in subgidse te kan plaas, gebruik die "alles" waarde.
  • Die “git grep”-opdrag het die opsie “-m” (“—max-count”) bygevoeg, wat soortgelyk is aan die opsie met dieselfde naam in GNU grep en jou toelaat om die aantal passings wat vertoon word, te beperk.
  • Die "ls-files"-opdrag implementeer die "--format"-opsie om die uitvoervelde te konfigureer (byvoorbeeld, jy kan uitvoer van die objeknaam, modusse, ens. aktiveer).
  • In "git cat-file", wanneer die inhoud van voorwerpe vertoon word, is dit moontlik om die outeur-e-pos-bindings wat in die poskaartlêer gespesifiseer is, in ag te neem.

Bron: opennet.ru

Voeg 'n opmerking