{"id":99450,"date":"2021-03-16T16:22:41","date_gmt":"2021-03-16T14:22:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31"},"modified":"2021-03-16T16:22:41","modified_gmt":"2021-03-16T14:22:41","slug":"vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","title":{"rendered":"Release del sistema di gestione distribuito dei testi sorgenti Git 2.31","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c8 disponibile il rilascio del sistema di gestione distribuita dei codici sorgenti Git 2.31. Git \u00e8 uno dei sistemi di gestione delle versioni pi\u00f9 popolari, affidabili e ad alte prestazioni, che offre strumenti flessibili per lo sviluppo non lineare, basati su ramificazioni e fusioni di rami. 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 gli sviluppatori di singoli tag e commit.       <\/p>\n<p>Rispetto alla versione precedente, nella nuova versione sono stati inclusi 679 cambiamenti, preparati con la partecipazione di 85 sviluppatori, 23 dei quali hanno partecipato per la prima volta allo sviluppo. Le principali novit\u00e0 includono:  <\/p>\n<ul>\n<li class=\"l\"> \u00c8 stato aggiunto il comando \"git maintenance\", che consente di eseguire operazioni periodiche su sistemi che non supportano cron. Ad esempio, con il nuovo comando \u00e8 possibile organizzare l'esecuzione periodica del processo di impacchettamento del repository, senza dover attendere la conclusione del blocco del repository durante l'esecuzione automatica dell'impacchettamento mentre si eseguono vari comandi. Il comando \"git maintenance\" consente di eseguire ottimizzazioni e operazioni per mantenere la struttura ottimale del repository in background, senza bloccare la sessione interattiva: ogni ora viene eseguita un'operazione per il caricamento anticipato di nuovi oggetti dal repository remoto e l'aggiornamento del file con il grafo dei commit, e ogni notte viene avviato il processo di impacchettamento del repository.\n<li class=\"l\"> \u00c8 stata aggiunta la supporto per la generazione di un indice inverso (revindex) su disco per i file pack. Ricordiamo che Git memorizza tutti i dati sotto forma di oggetti, che sono collocati in file separati. Per migliorare l'efficienza nella gestione del repository, gli oggetti sono ulteriormente inseriti in file pack, in cui le informazioni sono presentate come un flusso di oggetti che seguono l'uno dopo l'altro (un formato simile \u00e8 utilizzato durante il trasferimento degli oggetti con i comandi git fetch e git push). Per ciascun file pack viene creato un file indice (.idx), che consente di determinare molto rapidamente, tramite l'identificatore dell'oggetto, l'offset nel file pack dove \u00e8 memorizzato tale oggetto. L'indice inverso proposto in Git 2.31 (.rev) \u00e8 destinato a ottimizzare il processo di identificazione dell'oggetto in base alle informazioni relative alla sua posizione nel file pack.\n<p>In precedenza, tale trasformazione veniva eseguita al volo durante l'analisi del file pack e veniva memorizzata solo in memoria, il che non consentiva il riutilizzo di tali indici e costringeva a generare l'indice ogni volta. L'operazione di costruzione dell'indice consiste nella costruzione di un array di coppie \"oggetto-posizione\" e nella sua ordinazione in base alla posizione, il che pu\u00f2 richiedere molto tempo per file pack di grandi dimensioni.     <\/p>\n<p>Ad esempio, l'operazione di recupero del contenuto degli oggetti, in cui viene utilizzato un indice diretto, \u00e8 stata eseguita 62 volte pi\u00f9 velocemente rispetto all'operazione di visualizzazione delle dimensioni degli oggetti, per la quale i dati sulla posizione relativa all'oggetto non sono stati indicizzati. Dopo l'uso di un indice inverso, queste operazioni hanno impiegato circa lo stesso tempo. Gli indici inversi consentono inoltre di accelerare le operazioni di invio degli oggetti durante l'esecuzione dei comandi fetch e push, grazie alla trasmissione diretta dei dati gi\u00e0 pronti dal disco. Per impostazione predefinita, gli indici inversi non vengono creati; per generarli \u00e8 necessario abilitare l'impostazione \"git config pack.writeReverseIndex true\" e successivamente imballare il repository con il comando \"git repack -Ad\".    <\/p>\n<li class=\"l\"> Sono state aggiunte ottimizzazioni delle prestazioni basate sull'introduzione nel formato di file commit-graph, utilizzato per ottimizzare l'accesso alle informazioni sui commit, di nuovi dati sul numero di generazione del commit, che possono essere usati per accelerare ulteriori operazioni sui commit.\n<li class=\"l\"> Aggiunte le capacit\u00e0 di ridefinire il nome del ramo principale utilizzato per impostazione predefinita nei nuovi repository (impostazione init.defaultBranch). Quando si accede a repository esterni, git tenta di estrarre il ramo a cui punta HEAD, cio\u00e8 se l'esterno <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/\"   title=\"server\" data-wpil-keyword-link=\"linked\">server<\/a> utilizza per impostazione predefinita il branch \"main\"; quindi, l'operazione \"git clone\" tenter\u00e0 di estrarre localmente \"main\". In Git 2.31 il supporto per tale estrazione \u00e8 ora implementato anche per i repository vuoti. Ad esempio, durante la clonazione locale di un nuovo repository prima di aggiungere i primi patch, la copia locale conterr\u00e0 ora quella impostazione esterna. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/dts-dronten\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2621\">server<\/a> .\n<li class=\"l\"> Al comando \"git rev-list\" \u00e8 stata aggiunta l'opzione \"--disk-usage\", che consente di visualizzare un riepilogo delle dimensioni degli oggetti.\n<li class=\"l\"> In attesa della prossima sostituzione del backend per l'esecuzione delle fusioni, \u00e8 stata notevolmente ottimizzata la definizione delle rinominazioni.\n<li class=\"l\"> Interrotta la supporto della libreria di espressioni regolari obsoleta PCRE1.\n<li class=\"l\"> \u00c8 stata fornita la possibilit\u00e0 di vietare forzatamente l'uso di riferimenti abbreviati, valido indipendentemente dall'algoritmo di hashing. Il divieto viene attivato assegnando il valore \"no\" al parametro core.abbrev.\n<li class=\"l\"> Al comando \"git rev-parse\" \u00e8 stata aggiunta l'opzione \"--path-format=(absolute|relative)\" per definire esplicitamente l'output di percorsi relativi o assoluti.\n<li class=\"l\"> Negli script per il completamento automatico dell'input in Bash \u00e8 stato semplificato l'aggiungimento di regole di completamento per i propri sotto-comandi \"git\".\n<li class=\"l\"> Al comando \"git bundle\" \u00e8 stata aggiunta l'opzione \"--stdin\" per leggere i riferimenti dall'input standard.\n<li class=\"l\"> Al comando \"git log\" \u00e8 stata aggiunta una nuova opzione \"--diff-merges=\".\n<li class=\"l\"> Al comando \"git ls-files\" \u00e8 stata aggiunta l'opzione \"--deduplicatecan\" per eliminare i duplicati durante l'output.\n<li class=\"l\"> Aggiunti nuovi modelli per escludere range di commit \u2014 \"^!\" e \"^-\".\n<li class=\"l\"> Al comando \"git range-diff\" sono state aggiunte le opzioni \"--left-only\" e \"--right-only\" per mostrare solo un lato del range confrontato.\n<li class=\"l\"> Sono state aggiunte le opzioni \u00ab--skip-to=\u00bb e \u00ab--rotate-to=\u00bb ai comandi \u00abgit diff\u00bb e \u00abgit log\u00bb per saltare o spostarsi alla fine dei percorsi iniziali.\n<li class=\"l\"> \u00c8 stata aggiunta l'opzione \u00ab--skip-to=\u00bb al comando \u00abgit difftool\u00bb per riprendere una sessione interrotta da un percorso arbitrario.\n<li class=\"l\"> Il Codice di condotta (Code-of-conduct), che definisce i principi fondamentali per la risoluzione delle situazioni conflittuali tra gli sviluppatori, \u00e8 stato aggiornato alla versione 2.0 (in precedenza era in uso la versione 1.4).<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54765\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\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.31. 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-99450","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=\"\u0414\u043e\u0441\u0442\u0443\u043f\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.31.\" \/>\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-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31\" \/>\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 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\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.31 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\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.31.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31\" \/>\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=\"2021-03-16T14:22:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-03-16T14:22:41+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\udd47Uscita del sistema distribuito di gestione del codice sorgente Git 2.31 | ProHoster","description":"\u00c8 disponibile il rilascio del sistema distribuito di gestione del codice sorgente Git 2.31.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","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 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\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.31 | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\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.31.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-raspredelyonnoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-31","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":"2021-03-16T14:22:41+00:00","article:modified_time":"2021-03-16T14:22:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99450","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":null,"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":"2021-03-16 14:26:20","updated":"2026-02-09 21:38:09","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\/99450","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=99450"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/99450\/revisions"}],"predecessor-version":[{"id":172923,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/99450\/revisions\/172923"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=99450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=99450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=99450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}