{"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\/pt\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","title":{"rendered":"Lan\u00e7amento do sistema de controle de vers\u00e3o Git 2.37","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ado o vers\u00e3o 2.37 do sistema distribu\u00eddo de controle de vers\u00f5es Git. O Git \u00e9 um dos sistemas de controle de vers\u00f5es mais populares, confi\u00e1veis e de alto desempenho, oferecendo ferramentas flex\u00edveis para desenvolvimento n\u00e3o-linear, com base em branching e merging. Para garantir a integridade do hist\u00f3rico e resist\u00eancia a altera\u00e7\u00f5es 'retroativas', \u00e9 utilizado um hash impl\u00edcito de todo o hist\u00f3rico anterior em cada commit, al\u00e9m da possibilidade de valida\u00e7\u00e3o digital das assinaturas dos desenvolvedores em tags e commits espec\u00edficos.       <\/p>\n<p>Em compara\u00e7\u00e3o com a vers\u00e3o anterior, esta nova vers\u00e3o incorpora 395 altera\u00e7\u00f5es, preparadas com a participa\u00e7\u00e3o de 75 desenvolvedores, dos quais 20 participaram do desenvolvimento pela primeira vez. As principais novidades incluem:  <\/p>\n<ul>\n<li class=\"l\"> O mecanismo de \u00edndices parciais (sparse index) foi preparado para uso geral, abrangendo apenas uma parte do reposit\u00f3rio. Os \u00edndices parciais permitem aumentar a performance e economizar espa\u00e7o em reposit\u00f3rios onde s\u00e3o realizadas opera\u00e7\u00f5es de clonagem parcial (sparse-checkout) ou onde se trabalha com uma c\u00f3pia incompleta do reposit\u00f3rio. Na nova vers\u00e3o, foi conclu\u00eddo o trabalho de integra\u00e7\u00e3o dos \u00edndices parciais nos comandos 'git show', 'git sparse-checkout' e 'git stash'. O ganho de desempenho mais not\u00e1vel ao usar \u00edndices parciais \u00e9 observado no comando 'git stash', cuja velocidade de execu\u00e7\u00e3o aumentou em at\u00e9 80% em certas situa\u00e7\u00f5es.\n<li class=\"l\"> Foi implementado um novo mecanismo 'cruft packs' para empacotar objetos inating\u00edveis (unreachable), que n\u00e3o possuem refer\u00eancias no reposit\u00f3rio (sem refer\u00eancias de branches ou tags). Objetos inating\u00edveis s\u00e3o removidos pelo coletor de lixo, mas permanecem no reposit\u00f3rio por um certo tempo antes da remo\u00e7\u00e3o para evitar condi\u00e7\u00f5es de corrida. Para rastrear o per\u00edodo de perman\u00eancia dos objetos inating\u00edveis, \u00e9 necess\u00e1ria a vincula\u00e7\u00e3o de etiquetas com a hora de modifica\u00e7\u00e3o desses objetos, o que impede que eles sejam armazenados em um \u00fanico arquivo pack, onde todos os objetos t\u00eam o mesmo hor\u00e1rio de modifica\u00e7\u00e3o. A abordagem anterior de armazenar cada objeto em um arquivo separado causava problemas na presen\u00e7a de um grande n\u00famero de novos objetos inating\u00edveis que ainda n\u00e3o estavam prontos para remo\u00e7\u00e3o. O mecanismo proposto 'cruft packs' permite armazenar todos os objetos inating\u00edveis em um \u00fanico arquivo pack, enquanto os dados sobre o hor\u00e1rio de modifica\u00e7\u00e3o de cada objeto s\u00e3o refletidos em uma tabela separada, armazenada em um arquivo com a extens\u00e3o '.mtimes'.\n<li class=\"l\"> Para Windows e macOS, h\u00e1 um mecanismo embutido para monitorar altera\u00e7\u00f5es no sistema de arquivos, permitindo evitar a varredura de todo o diret\u00f3rio de trabalho ao executar opera\u00e7\u00f5es como &#171;git status&#187;. Anteriormente, para monitorar altera\u00e7\u00f5es atrav\u00e9s de hooks, era poss\u00edvel usar utilit\u00e1rios externos de monitoramento de mudan\u00e7as no sistema de arquivos, como o Watchman, mas isso exigia a instala\u00e7\u00e3o de programas adicionais e configura\u00e7\u00e3o. Agora, essa funcionalidade est\u00e1 embutida e pode ser ativada com o comando &#171;git config core.fsmonitor true&#187;.\n<li class=\"l\"> No comando &#171;git sparse-checkout&#187;, o suporte ao modo alternativo &#171;&#8212;cone&#187; para a defini\u00e7\u00e3o de padr\u00f5es para clonagem parcial foi declarado obsoleto, permitindo que, ao definir a parte do reposit\u00f3rio que se encaixa na opera\u00e7\u00e3o de clonagem, arquivos individuais sejam listados usando a sintaxe &#171;.gitignore&#187;, o que impede a utiliza\u00e7\u00e3o de \u00edndices parciais para otimiza\u00e7\u00e3o.\n<li class=\"l\"> A flexibilidade na configura\u00e7\u00e3o da chamada do fsync() para descarregar altera\u00e7\u00f5es no disco foi aumentada. No par\u00e2metro &#171;core.fsyncMethod&#187;, foi adicionada a estrat\u00e9gia de sincroniza\u00e7\u00e3o &#171;batch&#187;, que permite acelerar opera\u00e7\u00f5es ao escrever um grande n\u00famero de arquivos individuais, acumulando altera\u00e7\u00f5es em um cache de grava\u00e7\u00e3o revertido e descarregando-as em uma \u00fanica chamada do fsync(). Um teste foi realizado, onde foram adicionados 500 arquivos com o comando &#171;git add&#187;, e com o novo modo, isso foi conclu\u00eddo em 0,15 segundos, enquanto chamar fsync() para cada arquivo levou 1,88 segundos, e sem usar fsync \u2014 0,06 segundos.\n<li class=\"l\"> Nos comandos de itera\u00e7\u00e3o de branches, como &#171;git log&#187; e &#171;git rev-list&#187;, foi adicionada a op\u00e7\u00e3o &#187; &#8212;since-as-filter=X&#187;, que permite filtrar a informa\u00e7\u00e3o sobre commits cuja data de cria\u00e7\u00e3o \u00e9 anterior a &#171;X&#187;. Diferente da op\u00e7\u00e3o &#171;&#8212;since&#187;, o novo comando \u00e9 implementado como um filtro, que n\u00e3o interrompe a itera\u00e7\u00e3o ap\u00f3s o primeiro commit que \u00e9 mais antigo que o tempo especificado.\n<li class=\"l\"> No comando &#171;git remote&#187;, ao especificar a flag &#171;-v&#187;, \u00e9 garantido que informa\u00e7\u00f5es sobre clones parciais do reposit\u00f3rio sejam exibidas.\n<li class=\"l\"> Adicionada a configura\u00e7\u00e3o &#171;transfer.credentialsInUrl&#187;, que pode aceitar os valores &#171;warn&#187;, &#171;die&#187; e &#171;allow&#187;. Caso sejam fornecidas credenciais em texto claro no par\u00e2metro &#171;remote.&lt;name&gt;.url&#187;, a tentativa de executar opera\u00e7\u00f5es &#171;fetch&#187; ou &#171;push&#187; falhar\u00e1 com um erro se a configura\u00e7\u00e3o &#171;transfer.credentialsInUrl&#187; estiver definida como &#171;die&#187;, ou resultar\u00e1 em um aviso se estiver definida como &#171;warn&#187;.\n<li class=\"l\"> Por padr\u00e3o, est\u00e1 em uso uma nova implementa\u00e7\u00e3o do modo interativo do comando &#171;git add -i&#187;, reescrita de Perl para 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.3 - 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\/pt\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47 Lan\u00e7amento do sistema de controle de vers\u00f5es Git 2.37 | ProHoster","description":"Foi lan\u00e7ado o Git 2.37, um sistema distribu\u00eddo de controle de vers\u00f5es.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/104517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=104517"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104517\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=104517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=104517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=104517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}