{"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\/ro\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","title":{"rendered":"Lansarea sistemului de gestionare a codului surs\u0103 Git 2.37","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A fost lansat\u0103 versiunea 2.37 a sistemului distribuit de gestionare a codului surs\u0103 Git. Git este unul dintre cele mai populare, fiabile \u0219i performante sisteme de gestionare a versiunilor, oferind instrumente flexibile pentru dezvoltarea non-liniar\u0103, bazate pe ramificare \u0219i \u00eembinare a ramurilor. Pentru a asigura integritatea istoriei \u0219i rezisten\u021ba la modific\u0103rile \u201eretrospectiv\u201d, se utilizeaz\u0103 un hashing implicit al \u00eentregii istorii anterioare \u00een fiecare commit, fiind, de asemenea, posibil\u0103 validarea prin semn\u0103turi digitale a dezvoltatorilor pentru anumite etichete \u0219i commit-uri.       <\/p>\n<p>Comparativ cu versiunea anterioar\u0103, noua versiune a \u00eenregistrat 395 de modific\u0103ri, preg\u0103tite cu participarea a 75 de dezvoltatori, dintre care 20 au participat pentru prima dat\u0103 la dezvoltare. Cele mai importante inova\u021bii sunt:  <\/p>\n<ul>\n<li class=\"l\"> Mecanismul indexurilor par\u021biale (sparse index), care acoper\u0103 doar o parte a repository-ului, a fost preg\u0103tit pentru utilizare general\u0103. Indexurile par\u021biale permit \u00eembun\u0103t\u0103\u021birea performan\u021bei \u0219i economisirea spa\u021biului \u00een repository-uri \u00een care se efectueaz\u0103 opera\u021biuni de clonare par\u021bial\u0103 (sparse-checkout) sau se lucreaz\u0103 cu o copie incomplet\u0103 a repository-ului. \u00cen noua versiune s-a finalizat integrarea indexurilor par\u021biale \u00een comenzile \u201egit show\u201d, \u201egit sparse-checkout\u201d \u0219i \u201egit stash\u201d. Cea mai semnificativ\u0103 cre\u0219tere a performan\u021bei ob\u021binut\u0103 de la utilizarea indexurilor par\u021biale se observ\u0103 \u00een comanda \u201egit stash\u201d, al c\u0103rei timp de execu\u021bie a crescut cu 80% \u00een anumite situa\u021bii.\n<li class=\"l\"> A fost implementat un nou mecanism \u201ecruft packs\u201d pentru ambalarea obiectelor inaccesibile (unreachable), care nu au linkuri \u00een repository (nu sunt referite de ramuri sau etichete). Obiectele inaccesibile sunt \u0219terse de colectorul de gunoi, dar \u00eenainte de \u0219tergere r\u0103m\u00e2n pentru o anumit\u0103 perioad\u0103 \u00een repository pentru a evita st\u0103rile de competi\u021bie. Pentru a urm\u0103ri perioada \u00een care obiectele inaccesibile se afl\u0103 \u00een repository este necesar\u0103 asocierea lor cu etichete care indic\u0103 timpul de modificare al acestor obiecte, ceea ce nu permite stocarea lor \u00eentr-un singur fi\u0219ier pack, \u00een care toate obiectele au un timp comun de modificare. Precedenta metod\u0103 de a salva fiecare obiect \u00eentr-un fi\u0219ier separat a dus la probleme \u00een prezen\u021ba unui num\u0103r mare de obiecte inaccesibile recente, care nu \u00eendeplineau \u00eenc\u0103 criteriile de \u0219tergere. Mecanismul \u201ecruft packs\u201d propus permite stocarea tuturor obiectelor inaccesibile \u00eentr-un singur fi\u0219ier pack, iar datele despre timpul de modificare al fiec\u0103rui obiect sunt reflectate \u00eentr-un tabel separat, stocat \u00eentr-un fi\u0219ier cu extensia \u201e.mtimes\u201d.\n<li class=\"l\"> Pentru Windows \u0219i macOS, a fost implementat un mecanism \u00eencorporat pentru monitorizarea modific\u0103rilor \u00een sistemul de fi\u0219iere, care permite evitarea parcurgerii \u00eentregului director de lucru la efectuarea unor opera\u021biuni precum \u201egit status\u201d. Anterior, pentru monitorizarea modific\u0103rilor prin hook-uri, se puteau conecta utilitare externe de monitorizare a modific\u0103rilor \u00een FS, precum Watchman, dar acest lucru necesita instalarea de programe suplimentare \u0219i configurare. Acum, aceasta func\u021bionalitate este \u00eencorporat\u0103 \u0219i poate fi activat\u0103 cu comanda \u201egit config core.fsmonitor true\u201d.\n<li class=\"l\"> \u00cen comanda \u201egit sparse-checkout\u201d, suportul pentru modul alternativ \u201e--cone\u201d de definire a \u0219abloanelor pentru clonarea par\u021bial\u0103 a fost declarat \u00eenvechit, permi\u021b\u00e2nd, la definirea p\u0103r\u021bii din repository care intr\u0103 sub opera\u021biunea de clonare, enumerarea fi\u0219ierelor individuale folosind sintaxa \u201e.gitignore\u201d, ceea ce nu permite utilizarea indec\u0219ilor par\u021biali pentru optimizare.\n<li class=\"l\"> A fost crescut\u0103 flexibilitatea configur\u0103rii apelului fsync() pentru a scrie modific\u0103rile pe disc. La parametrul \u201ecore.fsyncMethod\u201d a fost ad\u0103ugat\u0103 suportul pentru strategia de sincronizare \u201ebatch\u201d, care permite accelerarea lucrului atunci c\u00e2nd se scriu un num\u0103r mare de fi\u0219iere individuale prin acumularea modific\u0103rilor \u00een cache-ul de scriere, care este desc\u0103rcat cu un singur apel fsync(). Testul efectuat, \u00een care 500 de fi\u0219iere au fost ad\u0103ugate cu comanda \u201egit add\u201d, a fost finalizat \u00een 0.15 secunde, \u00een timp ce apelul fsync() pentru fiecare fi\u0219ier a durat 1.88 secunde, iar f\u0103r\u0103 utilizarea fsync\u20140.06 secunde.\n<li class=\"l\"> \u00cen comenzile de parcurgere a ramurilor, precum \u201egit log\u201d \u0219i \u201egit rev-list\u201d, a fost ad\u0103ugat\u0103 op\u021biunea \u201e--since-as-filter=X\u201d, care permite filtrarea informa\u021biilor despre commit-urile a c\u0103ror dat\u0103 de creare este mai veche de \u201eX\u201d. Spre deosebire de op\u021biunea \u201e--since\u201d, noua comand\u0103 este implementat\u0103 sub form\u0103 de filtru, care nu opre\u0219te parcurgerea dup\u0103 primul commit mai vechi de timpul specificat.\n<li class=\"l\"> \u00cen comanda \u201egit remote\u201d, la specificarea flag-ului \u201e-v\u201d, este asigurat afi\u0219area informa\u021biilor despre clonurile par\u021biale ale repository-ului.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 setarea &#171;transfer.credentialsInUrl&#187;, care poate accepta valorile &#171;warn&#187;, &#171;die&#187; \u0219i &#171;allow&#187;. \u00cen cazul \u00een care sunt specificate \u00een parametrul &#171;remote.&lt;name&gt;.url&#187; date de autentificare \u00een text deschis, \u00eencercarea de a efectua opera\u021biuni &#171;fetch&#187; sau &#171;push&#187; va fi \u00eencheiat\u0103 cu o eroare, dac\u0103 setarea &#171;transfer.credentialsInUrl&#187; este setat\u0103 pe &#171;die&#187;, sau cu un avertisment, dac\u0103 este setat\u0103 pe &#171;warn&#187;.\n<li class=\"l\"> \u00cen mod implicit, este utilizat\u0103 o nou\u0103 implementare a modului interactiv al comenzii &#171;git add -i&#187;, rescris\u0103 din Perl \u00een C.        <\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57416\">opennet.ro<\/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.2.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\/ro\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Lansarea sistemului de gestionare a codului surs\u0103 Git 2.37 | ProHoster","description":"A fost lansat\u0103 versiunea sistemului distribuit de gestionare a codului surs\u0103 Git 2.37.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-sistemy-upravleniya-ishodnymi-tekstami-git-2-37","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/104517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=104517"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/104517\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=104517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=104517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=104517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}