{"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":"Rilascio 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 distribuito di gestione del codice sorgente Git. Git \u00e8 uno dei sistemi di controllo versione pi\u00f9 popolari, affidabili e ad alte prestazioni, che offre strumenti flessibili per lo sviluppo non lineare, basati su ramificazioni e fusioni. Per garantire l'integrit\u00e0 della storia e la resistenza alle modifiche retroattive, viene utilizzato un hashing implicito dell'intera storia precedente in ogni commit; \u00e8 anche possibile verificare con firme digitali i tag e i commit dei singoli sviluppatori.       <\/p>\n<p>Rispetto alla versione precedente, nella nuova versione sono stati inclusi 483 cambiamenti, realizzati con la partecipazione di 86 sviluppatori, di cui 31 hanno partecipato per la prima volta. Le principali novit\u00e0:  <\/p>\n<ul>\n<li class=\"l\"> Nel comando 'git shortlog', progettato per visualizzare sintesi con statistiche dalla cronologia delle modifiche, \u00e8 stata aggiunta l'opzione '--group' per raggruppare arbitrariamente i commit in base a campi che non si limitano all'autore o al committente. Ad esempio, per mostrare un elenco di sviluppatori con informazioni sul numero di modifiche, tenendo conto degli 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 \u00ab\u2014group\u00bb 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 determinata release sono stati accettati in ogni mese, \u00e8 possibile indicare: git shortlog v2.38.0.. \u2014date='format:%Y-%m' \u2014group='' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12. In passato, per eseguire un'operazione simile sarebbe stato necessario utilizzare gli strumenti sort e uniq: git log v2.38.0.. \u2014date='format:%Y-%m' \u2014format='' | sort | uniq -c      <\/p>\n<li class=\"l\"> Le funzionalit\u00e0 del meccanismo &#171;cruft packs&#187; sono state ampliate. Questo strumento \u00e8 progettato per imballare gli oggetti non raggiungibili, per i quali non ci sono riferimenti nel repository (nessun riferimento da parte di branch o tag). Gli oggetti non raggiungibili vengono eliminati dal garbage collector, ma rimangono nel repository per un certo periodo prima di essere rimossi, per escludere stati di race. Il meccanismo &#171;cruft packs&#187; consente di archiviare tutti gli oggetti non raggiungibili in un unico file pack, e le informazioni sulla data di modifica di ciascun oggetto vengono conservate in una tabella separata, memorizzata in un file con estensione &#171;.mtimes&#187;, affinch\u00e9 non si sovrappongano al tempo di modifica generale.\n<p>Il tempo di permanenza degli oggetti non raggiungibili nel repository prima della loro effettiva eliminazione \u00e8 determinato dall'opzione &#171;&#8212;prune=&lt;date&gt;&#187;. Nonostante il fatto che il ritardo prima della rimozione sia un modo abbastanza efficace e pratico per prevenire la corruzione del repository a causa di stati di race, non \u00e8 al 100% affidabile. Per semplificare il recupero di un repository danneggiato, \u00e8 stata introdotta in questa nuova versione la possibilit\u00e0 di salvare oggetti mancanti, per cui \u00e8 stata aggiunta al comando &#171;git repack&#187; l'opzione &#171;&#8212;expire-to&#187;, 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 non raggiungibili che non sono stati modificati negli ultimi 5 minuti, si pu\u00f2 utilizzare il comando: git repack &#8212;cruft &#8212;cruft-expiration=5.minutes.ago -d &#8212;expire-to=..\\\/backup.git      <\/p>\n<li class=\"l\"> \u00c8 stata notevolmente aumentata (fino al 70%) la velocit\u00e0 di esecuzione dell'operazione &#171;git grep &#8212;cached&#187; durante la ricerca in aree dove si applica il clone parziale (sparse-checkout) e per le quali sono disponibili indici parziali (sparse index). In precedenza, specificando l'opzione &#171;&#8212;cached&#187;, prima si effettuava la ricerca nell'indice normale e poi in quelli parziali, causando notevoli ritardi durante la ricerca in grandi repository.\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 inserzione nel repository durante l'operazione &#171;git push&#187;. Grazie all'adozione di un controllo che considera solo i riferimenti dichiarati, in un repository di test con 7 milioni di riferimenti, dei quali solo il 3% \u00e8 coperto dall'operazione push, le ottimizzazioni apportate 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 sulla dimensione massima dei patch elaborati. Se la dimensione del patch supera 1 GB, verr\u00e0 ora visualizzato un errore.\n<li class=\"l\"> Per proteggere da potenziali vulnerabilit\u00e0, sono state apportate modifiche per ripulire le informazioni superflue dagli header emessi 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\"> Durante l'operazione di checkout con un ramo che \u00e8 un collegamento simbolico a un altro ramo, il comando &#171;git symbolic-ref HEAD&#187; ora restituisce il nome del ramo di destinazione anzich\u00e9 il nome del collegamento simbolico.\n<li class=\"l\"> Aggiunto il 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 ramo precedente.\n<li class=\"l\"> Aggiunto il comando &#171;git merge-tree &#8212;stdin&#187;, che consente di passare un elenco di parametri tramite lo standard input.\n<li class=\"l\"> Sulle filesystem di rete, per impostazione predefinita, il gestore fsmonitor che monitora le modifiche nel filesystem \u00e8 disattivato.    <\/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.0.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.0.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 della versione 2.39 del sistema di gestione del codice sorgente Git | ProHoster","description":"Dopo due mesi di sviluppo, \u00e8 stata pubblicata la versione del sistema distribuito di controllo delle versioni 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}]}}