{"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\/it\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","title":{"rendered":"Uscita del sistema di controllo delle versioni Git 2.39","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dopo due mesi di sviluppo, \u00e8 stata pubblicata la versione 2.39 del sistema di gestione distribuita dei codici sorgente Git. Git \u00e8 uno dei sistemi di gestione delle versioni pi\u00f9 popolari, affidabili e ad alte prestazioni, che offre strumenti flessibili per uno sviluppo non lineare basato su ramificazione e fusione dei branch. Per garantire l'integrit\u00e0 della cronologia e la robustezza nelle modifiche 'retroattive', viene utilizzato un hashing implicito di tutta la cronologia precedente in ogni commit, con la possibilit\u00e0 di autenticazione tramite firme digitali degli sviluppatori per singoli tag e commit.       <\/p>\n<p>Rispetto alla versione precedente, la nuova versione accoglie 483 modifiche, preparate con la partecipazione di 86 sviluppatori, dei quali 31 partecipano per la prima volta allo sviluppo. Le novit\u00e0 principali sono:  <\/p>\n<ul>\n<li class=\"l\"> Nella squadra 'git shortlog', destinata a visualizzare riepiloghi con statistiche dalla cronologia delle modifiche, \u00e8 stata aggiunta l'opzione '--group' per la raggruppamento arbitrario dei commit per campi che non si limitano all'autore o al committente. Ad esempio, per visualizzare un elenco degli sviluppatori con informazioni sul numero di modifiche che considerano gli assistenti menzionati nel campo 'Co-authored-by', \u00e8 possibile utilizzare il comando: git shortlog -ns --group=author --group=trailer:co-authored-by\n<p>L'output di shortlog pu\u00f2 essere aggregato utilizzando specificatori di formato e l'opzione &#171;&#8212;group&#187; consente di semplificare notevolmente la creazione di report complessi ed eliminare la necessit\u00e0 di eseguire comandi di ordinamento aggiuntivi. Ad esempio, per creare un report con informazioni su quanti commit per una specifica release sono stati accettati in ciascun mese, si pu\u00f2 utilizzare: 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 In passato, per eseguire un'operazione analoga sarebbe stata necessaria l'ausilio degli strumenti sort e uniq: git log v2.38.0.. &#8212;date=&#8217;format:%Y-%m&#8217; &#8212;format=&#8217;&#8217; | sort | uniq -c      <\/p>\n<li class=\"l\"> Sono state ampliate le funzionalit\u00e0 del meccanismo \u00abcruft packs\u00bb, progettato per l'imballaggio di oggetti irraggiungibili che non hanno link nel repository (non sono indicizzati da rami o tag). Gli oggetti irraggiungibili vengono rimossi dal garbage collector, ma rimangono nel repository per un certo periodo prima della cancellazione per escludere stati di concorrenza. Il meccanismo \u00abcruft packs\u00bb consente di memorizzare tutti gli oggetti irraggiungibili in un unico file pack, mentre i dati relativi all'ora di modifica di ciascun oggetto sono riportati in una tabella separata, conservata in un file con estensione \u00ab.mtimes\u00bb, in modo che non si sovrappongano all'orario generale di modifica.\n<p>Il tempo di permanenza degli oggetti irraggiungibili nel repository prima della cancellazione effettiva \u00e8 determinato dall'opzione \u00ab--prune=<data>\u00bb. Anche se il ritardo prima della cancellazione \u00e8 un modo piuttosto efficace e pratico per prevenire danni al repository a causa di stati di concorrenza, non \u00e8 completamente affidabile al 100%. Per semplificare il ripristino di un repository danneggiato, \u00e8 stata introdotta in questa nuova versione la possibilit\u00e0 di conservare gli oggetti mancanti, per cui \u00e8 stata aggiunta al comando \u00abgit repack\u00bb l'opzione \u00ab--expire-to\u00bb, che consente di specificare un file per creare una copia esterna di tutti gli oggetti rimossi. Ad esempio, per salvare nel file backup.git gli oggetti irraggiungibili che non sono stati modificati negli ultimi 5 minuti, si pu\u00f2 utilizzare il comando: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire-to=..\/backup.git      <\/p>\n<li class=\"l\"> Significativamente aumentata (fino al 70%) la velocit\u00e0 di esecuzione dell'operazione \u00abgit grep --cached\u00bb durante la ricerca in aree in cui viene applicato il partial cloning (sparse-checkout) e per le quali ci sono indici parziali (sparse index). In precedenza, quando si specificava l'opzione \u00ab--cached\u00bb, si cercava prima nell'indice normale e poi in quelli parziali, il che portava a ritardi significativi nella ricerca in repository di grandi dimensioni.\n<li class=\"l\"> Accelerato l'esecuzione su <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/dts-newyork\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2733\">server<\/a> Verifica della coerenza dei nuovi oggetti prima della loro immissione nel repository durante l'operazione \u00abgit push\u00bb. Grazie al passaggio a un conteggio durante la verifica solo dei link dichiarati, nel repository di prova con 7 milioni di link, di cui solo il 3% coperti dall'operazione push, le ottimizzazioni introdotte hanno consentito di ridurre il tempo di verifica di 4.5 volte.\n<li class=\"l\"> Per proteggere da potenziali overflow interi nel codice, il comando &#171;git apply&#187; ha un limite massimo sulla dimensione dei patch elaborati. Se la dimensione del patch supera 1 GB, verr\u00e0 ora visualizzato un errore.\n<li class=\"l\"> Per proteggere contro potenziali vulnerabilit\u00e0, sono state apportate modifiche per rimuovere informazioni superflue dagli header inviati quando si utilizza il modulo h2h3 con l'opzione GIT_TRACE_CURL=1 o GIT_CURL_VERBOSE=1 insieme a HTTP\/2.\n<li class=\"l\"> Quando si esegue un'operazione di check out con un branch che \u00e8 un link simbolico a un altro branch, il comando &#171;git symbolic-ref HEAD&#187; ora restituisce il nome del branch di destinazione, anzich\u00e9 il nome del link simbolico.\n<li class=\"l\"> \u00c8 stata aggiunta la supporto per l'argomento @{-1} nell'opzione &#171;&#8212;edit-description&#187; (&#171;git branch &#8212;edit-description @{-1}&#187;) per modificare la descrizione del branch precedente.\n<li class=\"l\"> \u00c8 stato aggiunto il comando &#171;git merge-tree &#8212;stdin&#187;, che consente di inviare un elenco di parametri tramite lo standard input.\n<li class=\"l\"> Sui filesystem di rete, il gestore fsmonitor, che tiene traccia delle modifiche nel file system, \u00e8 disabilitato per impostazione predefinita.    <\/ul>\n<p>Fonte: <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.1.1 - 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\/it\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Rilascio del sistema di gestione dei codici sorgenti Git 2.39 | ProHoster","description":"Dopo due mesi di sviluppo, \u00e8 stato rilasciato il sistema distribuito di gestione dei codici sorgenti Git 2.39.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-39","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/106023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=106023"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/106023\/revisions"}],"predecessor-version":[{"id":160013,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/106023\/revisions\/160013"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=106023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=106023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=106023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}