{"id":106023,"date":"2022-12-13T15:36:42","date_gmt":"2022-12-13T13:36:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39"},"modified":"2022-12-13T15:36:42","modified_gmt":"2022-12-13T13:36:42","slug":"vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","title":{"rendered":"Uitgave van het versiebeheersysteem Git 2.39","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Na twee maanden ontwikkeling is versie 2.39 van het gedistribueerde systeem voor broncodebeheer Git gepubliceerd. Git behoort tot de meest populaire, betrouwbare en krachtige versiebeheersystemen en biedt flexibele middelen voor niet-lineaire ontwikkeling, gebaseerd op takken en samenvoegen. Om de integriteit van de geschiedenis en de weerstand tegen 'retroactieve' wijzigingen te waarborgen, wordt impliciete hashing van de volledige voorgaande geschiedenis in elke commit gebruikt. Het is ook mogelijk om digitale handtekeningen van ontwikkelaars te verifi\u00ebren voor afzonderlijke tags en commits.       <\/p>\n<p>In vergelijking met de vorige release zijn 483 wijzigingen in deze nieuwe versie opgenomen, voorbereid met de deelname van 86 ontwikkelaars, van wie 31 voor het eerst deelnam aan de ontwikkeling. De belangrijkste vernieuwingen zijn:  <\/p>\n<ul>\n<li class=\"l\"> Aan het team 'git shortlog', dat bedoeld is voor het weergeven van samenvattingen met statistieken uit de wijzigingsgeschiedenis, is de optie '--group' toegevoegd om commits willekeurig te groeperen op velden, niet beperkt tot auteur of committer. Bijvoorbeeld, om een lijst met ontwikkelaars te tonen met informatie over het aantal wijzigingen, inclusief helpers vermeld in het veld 'Co-authored-by', kan de volgende opdracht worden gebruikt: git shortlog -ns --group=author --group=trailer:co-authored-by\n<p>De uitvoer van shortlog kan worden geaggregeerd met behulp van formatteringsspecifiers, en de optie &#171;&#8212;group&#187; maakt het veel eenvoudiger om complexe rapporten te cre\u00ebren en te voorkomen dat extra sorteercommando's moeten worden uitgevoerd. Bijvoorbeeld, om een rapport te maken met informatie over het aantal commits dat voor een bepaalde release in elke maand is ontvangen, kan je het volgende opgeven: git shortlog v2.38.0.. &#8212;date=&#8217;format:%Y-%m&#8217; &#8212;group=&#8217;&#8217; -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Eerder zou voor een soortgelijke operatie het gebruik van de sort- en uniq-hulpprogramma's nodig zijn geweest: git log v2.38.0.. &#8212;date=&#8217;format:%Y-%m&#8217; &#8212;format=&#8217;&#8217; | sort | uniq -c      <\/p>\n<li class=\"l\"> De mogelijkheden van het 'cruft packs'-mechanisme zijn uitgebreid. Dit mechanisme is bedoeld voor het verpakken van onbereikbare objecten waarvoor er geen verwijzingen in de repository zijn (waarop geen takken of tags verwijzen). Onbereikbare objecten worden door de garbage collector verwijderd, maar blijven gedurende bepaalde tijd in de repository om racecondities te voorkomen. Het 'cruft packs'-mechanisme maakt het mogelijk om alle onbereikbare objecten in \u00e9\u00e9n pack-bestand op te slaan, terwijl gegevens over de wijzigingstijd van elk object in een aparte tabel worden vastgelegd, die wordt opgeslagen in een apart bestand met de extensie '.mtimes', zodat ze niet samenvallen met de algemene wijzigingstijd.\n<p>De tijd dat onbereikbare objecten in de repository blijven voordat ze daadwerkelijk worden verwijderd, wordt bepaald door de optie '--prune='. Hoewel de vertraging v\u00f3\u00f3r verwijdering een vrij effectieve en praktische manier is om beschadiging van de repository door racecondities te voorkomen, is deze niet 100% betrouwbaar. Om het herstel van een beschadigde repository te vereenvoudigen, is in de nieuwe release de mogelijkheid toegevoegd om ontbrekende objecten op te slaan. Hiervoor is de optie '--expire-to' aan de 'git repack'-opdracht toegevoegd, waarmee een bestand kan worden opgegeven voor het maken van een externe kopie van alle verwijderde objecten. Bijvoorbeeld, om de onbereikbare objecten die de afgelopen 5 minuten niet zijn gewijzigd in het bestand backup.git op te slaan, kan de volgende opdracht worden gebruikt: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire-to=..\/backup.git      <\/p>\n<li class=\"l\"> De snelheid van de 'git grep --cached'-operatie is aanzienlijk verhoogd (tot 70%) bij het zoeken in gebieden waar parti\u00eble kloning (sparse-checkout) wordt toegepast en waarvoor parti\u00eble indexen (sparse index) bestaan. Eerder werd er bij het opgeven van de optie '--cached' eerst in de reguliere index gezocht, en daarna in de parti\u00eble, wat leidde tot merkbare vertragingen bij het zoeken in grote repositories.\n<li class=\"l\"> De uitvoering is versneld voor <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/server\/dts-newyork\/\"   title=\"de server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2733\">de server<\/a> de controle op de samenhang van nieuwe objecten voordat ze in de repository worden geplaatst bij het uitvoeren van de 'git push'-operatie. Door over te schakelen naar het alleen controleren van de gedeclareerde verwijzingen, hebben de aangebrachte optimalisaties in een testrepository met 7 miljoen verwijzingen, waarvan slechts 3% werd verwerkt in de 'push'-operatie, de controletijd met 4,5 keer verminderd.\n<li class=\"l\"> Om te beschermen tegen potenti\u00eble gehele getaloverlopen in de code is de maximale grootte van te verwerken patches in de 'git apply'-opdracht beperkt. Als de patchgrootte meer dan 1 GB overschrijdt, wordt er nu een foutmelding weergegeven.\n<li class=\"l\"> Om potenti\u00eble kwetsbaarheden te beschermen, zijn er wijzigingen aangebracht om onnodige informatie uit de headers die worden verzonden bij het gebruik van de h2h3-module met de optie GIT_TRACE_CURL=1 of GIT_CURL_VERBOSE=1 samen met HTTP\/2 te verwijderen.\n<li class=\"l\"> Bij het uitvoeren van de checkout-operatie met een branch die een symbolische link naar een andere branch is, toont de opdracht 'git symbolic-ref HEAD' nu de naam van de doeltak in plaats van de naam van de symbolische link.\n<li class=\"l\"> Ondersteuning toegevoegd voor de argument @{-1} in de optie '--edit-description' ('git branch --edit-description @{-1}') om de beschrijving van de vorige tak te bewerken.\n<li class=\"l\"> De 'git merge-tree --stdin'-opdracht is toegevoegd, waarmee een lijst van parameters via de standaardinvoer kan worden doorgegeven.\n<li class=\"l\"> Op netwerkbestandsystemen is de fsmonitor-handler, die veranderingen in het bestandssysteem volgt, standaard uitgeschakeld.    <\/ul>\n<p>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58318\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39. Git \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445, \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0433\u0438\u0431\u043a\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0431\u0430\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0438 \u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0438 \u0432\u0435\u0442\u043e\u043a. \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c &#171;\u0437\u0430\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c&#187; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0435, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-106023","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-12-13T13:36:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-12-13T13:36:42+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Release van het versiebeheersysteem Git 2.39 | ProHoster","description":"Na twee maanden ontwikkeling is release 2.39 van het gedistribueerde versiebeheersysteem Git uitgebracht.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.39.","og:url":"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-12-13T13:36:42+00:00","article:modified_time":"2022-12-13T13:36:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"106023","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-09 21:39:56","updated":"2026-02-09 21:39:56","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/106023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=106023"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/106023\/revisions"}],"predecessor-version":[{"id":160013,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/106023\/revisions\/160013"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=106023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=106023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=106023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}