{"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\/da\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","title":{"rendered":"Udgivelsen af kildekodeh\u00e5ndteringssystemet Git 2.39","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Efter to m\u00e5neders udvikling er udgaven af det distribuerede versionskontrolsystem Git 2.39 blevet offentliggjort. Git er et af de mest popul\u00e6re, p\u00e5lidelige og h\u00f8jtydende versionskontrolsystemer, der tilbyder fleksible redskaber til ikke-line\u00e6r udvikling, baseret p\u00e5 forgrening og sammensmeltning af grene. For at sikre integriteten af historien og modstandsdygtigheden over for \u00e6ndringer \"i bagklogskabens lys\" anvendes implicit hashing af hele den tidligere historie i hver commit, og det er ogs\u00e5 muligt at autentificere digitale signaturer fra udviklere p\u00e5 individuelle tags og commits.       <\/p>\n<p>I forhold til den tidligere version er 483 \u00e6ndringer blevet vedtaget i den nye version, udarbejdet med deltagelse af 86 udviklere, hvoraf 31 deltager for f\u00f8rste gang i udviklingen. De vigtigste nyheder er:  <\/p>\n<ul>\n<li class=\"l\"> I kommandoen \"git shortlog\", som er beregnet til at vise resum\u00e9er med statistik fra \u00e6ndringshistorikken, er der tilf\u00f8jet en mulighed \"--group\" til arbitr\u00e6r gruppering af commits p\u00e5 omr\u00e5der, der ikke er begr\u00e6nset til forfatter eller commit-udf\u00f8rer. For eksempel, for at vise en liste over udviklere med information om antallet af \u00e6ndringer, der inkluderer medforfattere n\u00e6vnt i feltet \"Co-authored-by\", kan man bruge kommandoen: git shortlog -ns --group=author --group=trailer:co-authored-by\n<p>Shortlog-output kan aggregeres ved hj\u00e6lp af formatteringsspecifikatorer, og indstillingen &#171;&#8212;group&#187; g\u00f8r det betydeligt lettere at oprette komplekse rapporter og undg\u00e5 ekstra sorteringskommandoer. For eksempel, for at oprette en rapport med information om, hvor mange commits der blev accepteret for et givet udgivelse i hver m\u00e5ned, kan man angive: 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. Tidligere ville en lignende opgave kr\u00e6ve brug af sort- og uniq-v\u00e6rkt\u00f8jer: git log v2.38.0.. &#8212;date=&#8217;format:%Y-%m&#8217; &#8212;format=&#8217;&#8217; | sort | uniq -c.      <\/p>\n<li class=\"l\"> Mulighederne for mekanismen &#171;cruft packs&#187; er blevet udvidet. Den er designet til at pakke utilg\u00e6ngelige objekter, som der ikke er nogen henvisninger til i repositoriet (hverken fra grene eller tags). Utilg\u00e6ngelige objekter slettes af affaldssamleren, men forbliver i repositoriet i en periode inden sletning for at undg\u00e5 race-tilstande. Mekanismen &#171;cruft packs&#187; giver mulighed for at gemme alle utilg\u00e6ngelige objekter i \u00e9n pack-fil, mens data om \u00e6ndringstidspunktet for hvert objekt bliver reflekteret i en separat tabel, der gemmes i en fil med udvidelsen &#171;.mtimes&#187;, s\u00e5 de ikke krydser med den samlede \u00e6ndringstid.\n<p>Tidspunktet for, hvor l\u00e6nge utilg\u00e6ngelige objekter forbliver i repositoriet f\u00f8r den faktiske sletning, bestemmes af indstillingen &#171;&#8212;prune=&lt;date&gt;&#187;. Selvom der er tale om en rimelig effektiv metode til at forhindre skader p\u00e5 repositoriet p\u00e5 grund af race-tilstande, er den ikke 100 % p\u00e5lidelig. For at forenkle genoprettelsen af beskadigede repositorier, er der i den nye version tilf\u00f8jet mulighed for at gemme manglende objekter. Til dette er der tilf\u00f8jet en indstilling &#171;&#8212;expire-to&#187; til kommandoen &#171;git repack&#187;, som giver mulighed for at angive en fil til at oprette en ekstern kopi af alle slettede objekter. For eksempel, for at gemme utilg\u00e6ngelige objekter, der ikke har v\u00e6ret \u00e6ndret de sidste 5 minutter i filen backup.git, kan man bruge kommandoen:       git repack &#8212;cruft &#8212;cruft-expiration=5.minutes.ago -d &#8212;expire-to=..\\\/backup.git      <\/p>\n<li class=\"l\"> Hastigheden for udf\u00f8relsen af operationen &#171;git grep &#8212;cached&#187; er betydeligt \u00f8get (med op til 70 %) ved s\u00f8gninger i omr\u00e5der, hvor delvis kloning (sparse-checkout) anvendes, og hvor der findes delvise indekser (sparse index). Tidligere blev der med indstillingen &#171;&#8212;cached&#187; f\u00f8rst udf\u00f8rt en s\u00f8gning i den almindelige indeks, og derefter i de delvise, hvilket f\u00f8rte til m\u00e6rkbare forsinkelser ved s\u00f8gning i store repositorier.\n<li class=\"l\"> Udf\u00f8relsen er blevet fremskyndet til <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/da\/server\/dts-newyork\/\"   title=\"serveren\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2733\">serveren<\/a> Kontrol af sammenh\u00e6ngen af nye objekter inden de placeres i repositoriet under udf\u00f8relsen af operationen &#171;git push&#187;. Ved at skifte til kun at tage hensyn til de erkl\u00e6rede henvisninger, har deoptimeringer, der er foretaget i et testrepo med 7 millioner henvisninger, hvoraf kun 3 % er omfattede af push-operationen, reduceret kontrollens tid med 4,5 gange.\n<li class=\"l\"> For protection against potential integer overflows in the code, the maximum size of patches processed by the 'git apply' command is limited. If the size of the patch exceeds 1 GB, an error will now be displayed.\n<li class=\"l\"> To safeguard against potential vulnerabilities, changes have been made to clean excess information from headers when using the h2h3 module with the GIT_TRACE_CURL=1 or GIT_CURL_VERBOSE=1 options alongside HTTP\/2.\n<li class=\"l\"> When performing a checkout operation with a branch that is a symbolic link to another branch, the 'git symbolic-ref HEAD' command now outputs the name of the target branch instead of the name of the symbolic link.\n<li class=\"l\"> Support for the @{-1} argument has been added to the --edit-description option ('git branch --edit-description @{-1}') for editing the description of the previous branch.\n<li class=\"l\"> The command 'git merge-tree --stdin' has been added, allowing parameters to be passed through standard input.\n<li class=\"l\"> On network file systems, the fsmonitor handler that tracks changes in the filesystem is disabled by default.    <\/ul>\n<p>Kilde: <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\/da\/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=\"da_DK\" \/>\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\/da\/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 of the version control system Git 2.39 | ProHoster","description":"After two months of development, the release of the distributed version control system Git 2.39 has been published.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/106023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=106023"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/106023\/revisions"}],"predecessor-version":[{"id":160013,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/106023\/revisions\/160013"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=106023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=106023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=106023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}