{"id":104517,"date":"2022-06-28T09:36:45","date_gmt":"2022-06-28T07:36:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37"},"modified":"2022-06-28T09:36:45","modified_gmt":"2022-06-28T07:36:45","slug":"vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","title":{"rendered":"Rilascio del sistema di controllo delle versioni Git 2.37","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c8 stata presentata la versione 2.37 del sistema distribuito di gestione del codice sorgente Git. Git \u00e8 uno dei sistemi di versioning pi\u00f9 popolari, affidabili e performanti, che offre strumenti flessibili per lo sviluppo non lineare, basati su ramificazioni e fusioni di rami. Per garantire l'integrit\u00e0 della cronologia e la resistenza alle modifiche retroattive, viene utilizzato un hashing implicito dell'intera cronologia precedente in ogni commit; \u00e8 anche possibile la verifica tramite firme digitali dei tag e dei commit degli sviluppatori.       <\/p>\n<p>Rispetto alla versione precedente, nella nuova versione sono stati introdotti 395 cambiamenti, preparati con la partecipazione di 75 sviluppatori, di cui 20 hanno partecipato per la prima volta allo sviluppo. Le principali novit\u00e0 sono:  <\/p>\n<ul>\n<li class=\"l\"> \u00c8 stata resa disponibile per l'uso generale la funzionalit\u00e0 degli indici parziali (sparse index), che coprono solo una parte del repository. Gli indici parziali consentono di migliorare le prestazioni e risparmiare spazio nei repository in cui vengono eseguite operazioni di clonazione parziale (sparse-checkout) o si lavora con una copia incompleta del repository. Nella nuova versione \u00e8 stata completata l'integrazione degli indici parziali nei comandi 'git show', 'git sparse-checkout' e 'git stash'. Il guadagno di prestazioni pi\u00f9 evidente dall'uso degli indici parziali si osserva nel comando 'git stash', la cui velocit\u00e0 di esecuzione \u00e8 aumentata dell'80% in alcune situazioni.\n<li class=\"l\"> \u00c8 stato implementato un nuovo meccanismo 'cruft packs' per imballare oggetti non raggiungibili (unreachable) a cui non fanno riferimento rami o tag nel repository. Gli oggetti non raggiungibili vengono rimossi dal garbage collector, ma rimangono nel repository per un certo periodo di tempo prima della loro eliminazione per evitare stati di race. Per monitorare il periodo di esistenza degli oggetti non raggiungibili \u00e8 necessaria l'associazione di etichette con timestamp a questi oggetti, il che non consente di memorizzarli in un unico file pack dove tutti gli oggetti hanno un timestamp comune. La precedente soluzione di salvare ogni oggetto in un file separato portava a problemi quando vi erano molti oggetti non raggiungibili freschi che non erano ancora soggetti a eliminazione. Il meccanismo proposto 'cruft packs' consente di memorizzare tutti gli oggetti non raggiungibili in un unico file pack, e i dati sul tempo di modifica di ciascun oggetto sono riflessi in una tabella separata, memorizzata in un file con estensione '.mtimes'.\n<li class=\"l\"> Per Windows e macOS \u00e8 stato implementato un meccanismo integrato per il monitoraggio delle modifiche nel file system, che consente di evitare di esaminare l'intera directory di lavoro durante operazioni come &#171;git status&#187;. In precedenza, per monitorare le modifiche tramite hook, era possibile utilizzare strumenti di monitoraggio esterni come Watchman, ma ci\u00f2 richiedeva l'installazione di programmi aggiuntivi e configurazioni. Ora questa funzionalit\u00e0 \u00e8 integrata e pu\u00f2 essere attivata con il comando &#171;git config core.fsmonitor true&#187;.\n<li class=\"l\"> Nel comando &#171;git sparse-checkout&#187; \u00e8 stata dichiarata obsoleta la modalit\u00e0 alternativa &#171;&#8212;cone&#187; per la definizione dei modelli per il cloning parziale, che consente di elencare singoli file utilizzando la sintassi &#171;.gitignore&#187;, non consentendo l'uso di indici parziali per l'ottimizzazione.\n<li class=\"l\"> \u00c8 stata aumentata la flessibilit\u00e0 nella configurazione della chiamata di fsync() per il salvataggio delle modifiche su disco. Nel parametro &#171;core.fsyncMethod&#187; \u00e8 stata aggiunta una strategia di sincronizzazione &#171;batch&#187;, che velocizza le operazioni di scrittura quando si registrano numerosi file singoli accumulando le modifiche nella cache di scrittura, poi rilasciate in un'unica chiamata fsync(). Un test condotto aggiungendo 500 file con il comando &#171;git add&#187; ha impiegato 0,15 secondi con la nuova modalit\u00e0 attivata, mentre con chiamate fsync() per ogni file ci sono voluti 1,88 secondi, e senza utilizzare fsync &#8212; 0,06 secondi.\n<li class=\"l\"> Nei comandi di traversata dei branch, come &#171;git log&#187; e &#171;git rev-list&#187;, \u00e8 stata aggiunta l'opzione &#187; &#8212;since-as-filter=X&#187;, che consente di filtrare le informazioni sui commit creati oltre il tempo &#171;X&#187;. A differenza dell'opzione &#171;&#8212;since&#187;, il nuovo comando \u00e8 implementato come filtro, che non interrompe la traversata dopo il primo commit pi\u00f9 vecchio del tempo specificato.\n<li class=\"l\"> Nel comando &#171;git remote&#187;, specificando il flag &#171;-v&#187;, \u00e8 stata fornita la visualizzazione delle informazioni sui clone parziali del repository.\n<li class=\"l\"> \u00c8 stata aggiunta l'impostazione \u00abtransfer.credentialsInUrl\u00bb, che pu\u00f2 assumere i valori \u00abwarn\u00bb, \u00abdie\u00bb e \u00aballow\u00bb. Se nel parametro \u00abremote..url\u00bb vengono specificate credenziali in chiaro, il tentativo di eseguire le operazioni \u00abfetch\u00bb o \u00abpush\u00bb terminer\u00e0 con un errore se l'impostazione \u00abtransfer.credentialsInUrl\u00bb \u00e8 impostata su \u00abdie\u00bb, oppure con un avviso se \u00e8 impostata su \u00abwarn\u00bb.\n<li class=\"l\"> Di default \u00e8 implementata una nuova versione interattiva del comando \u00abgit add -i\u00bb, riscritta da Perl a C.        <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57416\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\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.37. 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, \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 [&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-104517","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\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\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.37.\" \/>\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-37\" \/>\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.37 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\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.37.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37\" \/>\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-06-28T07:36:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-06-28T07:36:45+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\udd47Versione del sistema di controllo versione Git 2.37 | ProHoster","description":"\u00c8 stata presentata la versione del sistema di controllo versione distribuito Git 2.37.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","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.37 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\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.37.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","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-06-28T07:36:45+00:00","article:modified_time":"2022-06-28T07:36:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"104517","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":"2022-06-28 07:37:48","updated":"2022-09-28 18:42:49","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\/104517","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=104517"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/104517\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=104517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=104517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=104517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}