Git 2.25 banatutako iturri-kontrol sistemaren kaleratzea

Eskuragarri iturburu-kontrol sistema banatua askatzea Git 2.25.0. Git bertsioak kontrolatzeko sistema ezagunenetako, fidagarri eta errendimendu handikoenetako bat da, adarkatze eta bategitean oinarritutako garapen-tresna ez-lineal malguak eskaintzen ditu. Historiaren osotasuna eta aldaketa atzerakoiekiko erresistentzia bermatzeko, aurreko historia osoaren hashing inplizitua erabiltzen da konpromiso bakoitzean; gainera, etiketa eta konpromisoak garatzaileen sinadura digitalarekin ziurta daitezke.

Aurreko bertsioarekin alderatuta, bertsio berriak 583 aldaketa izan zituen, 84 garatzaileren parte-hartzearekin prestatuak, eta horietatik 32k garapenean parte hartu zuten lehen aldiz. Nagusia berrikuntzak:

  • Klonazio partzialaren aukera egonkortze eta erabateko prestutasunera hurbiltzen ari da, datuen zati bat bakarrik transferitzeko eta biltegiaren kopia osatugabe batekin lan egiteko aukera emanez. Klon tipiko batek biltegiko datu guztiak kopiatzen ditu, aldaketen historiako fitxategi bakoitzaren bertsio guztiak barne. Biltegi oso handietarako, datuak kopiatzeak trafikoa eta diskoko espazioa nabarmen handitzen du, nahiz eta garatzaileari fitxategien azpimultzo bat bakarrik interesatzen zaion. Lan-iturburuaren zuhaitzaren zati bat bakarrik berreskuratzea errazteko, bertsio berriak "sparse-checkout" komando esperimental bat eta "--sparse" aukera berri bat sartzen ditu "clone" komandoarentzat.

    Aurretik, klonazio selektiboa egiteko prozesua egiten zen iragazkiak alferrikako edukia iragazteko eta "β€”ez-ematea" aukera falta diren fitxategiak betetzea desgaitzeko. Horren ostean, checkout eragiketa egin aurretik, core.sparseCheckout ezarpena gaitu eta baztertutako bide-ereduen zerrenda definitu behar zen .git/info/sparse-checkout fitxategian. Adibidez, blob gabe klonatu eta fitxategiak 2. sakonera edo gehiagoko azpidirektorioetatik ateratzea saihesteko, exekutatu dezakezu:

    git clone --filter=blob:none --no-checkout /your/repository/here repo
    $cd repo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout .

    "git sparse-checkout" komando berriak asko errazten du lana eta biltegi osatugabe batekin lana antolatzeko prozesua komando hauetara murrizten du:

    git clone --filter=blob:none --sparse /your/repository/here repo
    git sparse-checkout set /path/to/check/out

    sparse-checkout komandoak aukera ematen du ordaintzeko (ezarri) bideen zerrenda bat ezartzeko .git/info/sparse-checkout eskuz konfiguratu gabe, baita uneko bideen zerrenda (zerrenda) bistaratzeko eta ordainketa partzialak gaitu edo desgaitu (gaitu /desgaitu).

    Oso biltegi eta txantiloien zerrendekin lana optimizatzeko, "git config core.sparseCheckoutCone", baimendutako ereduak mugatzen dituena (.gitignore eredu arbitrarioen ordez, azpidirektorio jakin bateko bide guztiak eta fitxategi guztiak egiaztatu behar diren zehaztu dezakezu). Adibidez, biltegi handi batek "A/B/C" direktorio bat badu eta lan guztia "C" azpidirektorioan kontzentratuta badago, sparseCheckoutCone modua gaitzen duzunean, "git sparse-checkout set A/B/" komandoa. C”-k β€œC”-ren eduki osoa aterako du, baina β€œA” eta β€œB”-tik β€œC”-rekin lan egiteko beharrezkoak diren zatiak bakarrik aterako ditu.

  • Dokumentaziotik ("git rebase -h"), "--preserve-merges" aukeraren erreferentzia guztiak kendu dira, zaharkituta geratu dena eta horren ordez erabili beharko litzateke konpromezu multzo bat migratzeko.git rebase --rebase-fusions".
  • Posta-zerrendetara bidalitako adabakiak dituzten mezuen irakurgarritasuna hobetzeko, "git format-patch β€”cover-from-description subject" aukera gehitu da, zehazten denean, adarraren deskribapen testuaren lehen paragrafoa erabiltzen da gai gisa. adabaki multzo baten aurkezpen gutuna.
  • "git apply -3way" komandoaren eta "merge.conflictStyle" ezarpenaren erabilera konbinatuaren euskarria inplementatu da ("git apply"-ek orain merge.conflictStyle-ko gatazkaren deskribapen estiloa hartzen du kontuan gatazkaren konponbidea saiatu ondoren gatazka konpontzea beharrezkoa denean. adabaki fitxategi bat biltegian aplikatzeko).
  • "git diff/grep --show-function/-function-context" bezalako eragiketetan erabiltzen den funtzioen definizio kodea zabaldu da hizkuntza programetan funtzioen mugak definitzeko. Elixir.
  • Aukera berri bat gehitu da "git add", "git commit", "git reset" eta beste komando batzuetan - "-pathspec-from-file", fitxategi edo sarrera-korronte batetik bide-zerrenda bat kargatzeko aukera ematen duena. , komando lerroan zerrendatu beharrean.
  • Konpromisoak idaztean direktorio-mailan izenak detektatzeko arazoa konpondu da. Definizioak ez zuen funtzionatu azpidirektorio baten edukia biltegiaren errora eramanez gero.
  • "git add -i" komandoaren hasierako inplementazioa proposatu da, aldatutako edukia interaktiboki gehitzeko aukera emanez, Perl-etik C-ra berridatzita. "git add -p" komandoaren antzeko birlanketa bat abian da.
  • "git log -graph" komandoa birfactorizatu da, grafiko baten ASCII irudia sortuz biltegiko aldaketen historiarekin. Berrazterketari esker, irteera nabarmen hobetu eta sinplifikatu ahal izan zen istorioaren egitura desitxuratu gabe, eta horrek, adibidez, argazkiaren terminal-lerroaren zabaleratik haratago zabaltzen zuen arazoa konpondu zuen.
  • "git log --format=.." aukerak irteera formatua aldatzeko aukera ematen dizu,
    "l/L" banderen laguntzarekin zabaldu da "@" ikurraren aurretik adierazitako helbide elektronikoaren zatia soilik bistaratzeko (adibidez, erabilgarria garatzaile guztiek mezu elektroniko guztiak domeinu berean dituztenean).

  • "set-url" azpikomandoa gehitu da "git submodule" komandoari.
  • Proba kitak eguneratu dira, trantsiziorako prestatzeko
    SHA-2 algoritmoa SHA-1 ordez.

Iturria: opennet.ru

Gehitu iruzkin berria