Git 2.35 source control release

Na twee maanden ontwikkeling is het gedistribueerde bronbeheersysteem Git 2.35 uitgebracht. Git is een van de meest populaire, betrouwbare en krachtige versiebeheersystemen en biedt flexibele, niet-lineaire ontwikkeltools op basis van vertakken en samenvoegen. Om de integriteit van de geschiedenis en weerstand tegen veranderingen met terugwerkende kracht te garanderen, wordt in elke commit impliciete hashing van de gehele voorgaande geschiedenis gebruikt; het is ook mogelijk om individuele tags en commits te certificeren met digitale handtekeningen van de ontwikkelaars.

Vergeleken met de vorige versie bevat de nieuwe versie 494 wijzigingen die zijn voorbereid met medewerking van 93 ontwikkelaars, van wie er 35 voor het eerst aan de ontwikkeling hebben meegewerkt. De belangrijkste vernieuwingen zijn:

  • De mogelijkheden voor het gebruik van SSH-sleutels om Git-objecten digitaal te ondertekenen zijn uitgebreid. Om de geldigheidsduur van verschillende sleutels te differentiëren, is ondersteuning toegevoegd voor de OpenSSH-richtlijnen "valid-before" en "valid-after". Deze kunnen worden gebruikt om ervoor te zorgen dat handtekeningen correct werken nadat de sleutel van een van de ontwikkelaars is geroteerd. Voorheen was er een probleem met het scheiden van handtekeningen met de oude en nieuwe sleutels: als je de oude sleutel verwijdert, is het onmogelijk om de handtekeningen die ermee zijn gemaakt te verifiëren, maar als je de sleutel laat staan, is het mogelijk om nieuwe handtekeningen aan te maken met de oude sleutel, die al is vervangen door een andere sleutel. Met valid-before en valid-after kun je de scope van sleutels scheiden op basis van de tijd waarop de handtekening is aangemaakt.
  • De instelling merge.conflictStyle, waarmee u de modus voor het opmaken van informatie over samenvoegingsconflicten kunt selecteren, ondersteunt nu de "zdiff3"-modus, waarmee alle typische regels die aan het begin of einde van het conflict worden opgegeven, buiten het conflictgebied worden verplaatst. Zo kunt u een compactere presentatie van de informatie krijgen.
  • Het commando "git stash" heeft nu een "--staged"-modus waarmee je alleen de wijzigingen kunt opslaan die aan de index zijn toegevoegd, bijvoorbeeld in een situatie waarin je complexe wijzigingen tijdelijk wilt opslaan om eerst toe te voegen wat al is gedaan en de rest later af te handelen. Deze modus is vergelijkbaar met het commando "git commit", dat alleen de wijzigingen die aan de index zijn toegevoegd, wegschrijft. In plaats van een nieuwe commit aan te maken, slaat "git stash --staged" het resultaat echter op in een tijdelijke stash-omgeving. Zodra de wijzigingen nodig zijn, kunnen ze worden geretourneerd met "git stash pop".
  • De opdracht git log heeft een nieuwe opmaakspecificatie, "--format=%(describe)", waarmee je de uitvoer van git log kunt combineren met de uitvoer van de opdracht git describe. De parameters voor git describe worden direct in de specificatie opgegeven ("--format=%(describe:match= ,uitsluiten= )"), die ook verkorte tags kunnen bevatten ("--format=%(describe:tags= )") en configureer het aantal hexadecimale tekens om objecten te identificeren ("—format=%(describe:abbrev= )"). Om bijvoorbeeld de laatste 8 commits weer te geven waarvan de tags geen release candidate label hebben en 8-cijferige ID's op te geven, kunt u de opdracht gebruiken: $ git log -8 --format='%(describe:exclude=*-rc*,abbrev=13)' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2b95d94b056ab v2.34.1-642-gb56bd95bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640-gdf3c41adeb212 v2.34.1-639-g36b65715a4132
  • De instelling user.signingKey ondersteunt nu nieuwe sleuteltypen die niet beperkt zijn tot het type 'ssh-' en waarbij het volledige bestandspad naar de sleutel wordt opgegeven. Alternatieve typen worden opgegeven met het voorvoegsel "key::", bijvoorbeeld "key::ecdsa-sha2-nistp256" voor ECDSA-sleutels.
  • De snelheid waarmee de lijst met wijzigingen wordt gegenereerd in de modus "--histogram" is merkbaar verhoogd, en ook bij gebruik van de optie "--color-moved-ws", waarmee de markering van spaties in een kleurverschil wordt geregeld.
  • De opdracht "git jump", die Vim informatie geeft over de exacte sprongen naar een specifieke positie in een bestand bij het analyseren van mergeconflicten, het bekijken van diffs of het uitvoeren van een zoekbewerking, biedt nu de mogelijkheid om de betreffende mergeconflicten te beperken. Om bijvoorbeeld bewerkingen te beperken tot de map "foo", kunt u "git jump merge - foo" opgeven. Om de map "Documentatie" uit te sluiten van verwerking, kunt u "git jump merge - ':^Documentatie'" opgeven.
  • Er is gewerkt aan de standaardisatie van het gebruik van het type "size_t" in plaats van "unsigned long" voor waarden die de grootte van objecten weergeven. Hierdoor is het mogelijk geworden om de filters "clean" en "smudge" toe te passen op bestanden groter dan 4 GB op alle platforms, inclusief die met het LLP64-datamodel, waar het type "unsigned long" beperkt is tot 4 bytes.
  • De opdracht "git am" heeft nu een optie "--empty=(stop|drop|keep)", waarmee u het gedrag kunt kiezen voor lege e-mails die geen patches bevatten bij het parseren van patches uit een mailbox. Met de waarde "stop" wordt de volledige patchtoepassing beëindigd, met "drop" wordt een lege patch overgeslagen en met "keep" wordt een lege commit gemaakt.
  • De opdrachten git reset, git diff, git blame, git fetch, git pull en git ls-files ondersteunen nu sparse indexen, wat de prestaties verbetert en ruimte bespaart in repositories die sparse-checkout-bewerkingen uitvoeren.
  • De opdracht 'git sparse-checkout init' is verouderd en u kunt in plaats daarvan 'git sparse-checkout set' gebruiken.
  • Initiële implementatie toegevoegd van een nieuwe "reftable" backend voor het opslaan van referenties zoals branches en tags in een repository. De nieuwe backend maakt gebruik van blokopslag, dat wordt gebruikt door het JGit-project en is geoptimaliseerd voor het opslaan van zeer grote aantallen referenties. De backend is nog niet geïntegreerd met het referentiesysteem (refs) en is nog niet klaar voor praktisch gebruik.
  • Het kleurenpalet van de opdracht "git grep" is aangepast zodat deze overeenkomt met het GNU grep-hulpprogramma.

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster