{"id":182402,"date":"2026-06-30T14:48:37","date_gmt":"2026-06-30T12:48:37","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-git-2-55-c-vklyucheniem-po-umolchaniyu-podderzhki-rust"},"modified":"2026-06-30T14:48:37","modified_gmt":"2026-06-30T12:48:37","slug":"vypusk-git-2-55-c-vklyucheniem-po-umolchaniyu-podderzhki-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-git-2-55-c-vklyucheniem-po-umolchaniyu-podderzhki-rust","title":{"rendered":"Git 2.55 Released with Default Rust Support","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>The release of the distributed source code management system Git 2.55 has been announced. Key changes include: the default inclusion of a build with Rust, implementation of the fsmonitor process for Linux, a new strategy for repacking the incremental MIDX index, the command &#171;git history fixup&#187; for fixing commits, optimization of object availability bitmap generation, support for concurrent execution of hooks, and the command &#171;git format-rev&#187;. The Git code is distributed under the GPLv2+ license.<\/p>\n<p>Compared to the previous release, 505 changes have been accepted in this new version, prepared with the participation of 100 developers, 33 of whom contributed to Git for the first time. Major innovations include (1, 2, 3):<\/p>\n<ul>\n<li class=\"l\"> Support for components written in Rust is enabled by default. The rustc compiler<br \/>\nincluded in the list of build dependencies. To build without Rust, you can use the flag &#171;NO_RUST=1&#187; when running the make utility or &#171;-Drust=disabled&#187; during &#171;meson configure&#187;. The option to disable the build with Rust will be supported until the Git 3.0 branch, in which Rust will become a required dependency. A layer for portability between SHA-1 and SHA-256 hash configurations has been implemented in Rust, as well as some internal functions like encoding and decoding variable-length integer values. A significant overhaul of internal Git components in Rust is expected in the future. <\/p>\n<li class=\"l\"> An operation &#171;git history fixup&#187; for fixing commits has been added to the experimental &#171;git history&#187; command, which provides capabilities for rewriting change history. The &#171;fixup&#187; operation allows changes added through &#171;git add&#187; to be moved to an earlier commit, automatically rewriting all subsequent commits similar to executing the command &#171;git commit &#8212;fixup=&lt;commit&gt;&#187; and running &#171;git rebase &#8212;autosquash &lt;commit&gt;~&#187;.\n<li class=\"l\"> A background fsmonitor process has been implemented for the Linux platform, tracking changes in the file system using the inotify mechanism and allowing to avoid scanning the entire working directory when executing commands like &#171;git status&#187;. Activation is managed through the &#171;core.fsmonitor&#187; configuration.\n<li class=\"l\"> The command &#171;git repack&#187; has introduced the &#171;&#8212;write-midx=incremental&#187; mode, which implements a new strategy for updating metadata in the incremental MIDX index (multi-pack index), allowing the process to avoid repacking the entire index. In the incremental multi-pack index, instead of a single large index containing information about the distribution of objects across pack files, a layered structure is used \u2014 each layer covers a specific number of pack files and is stored in a separate bitmap file. This structure allows adding object data from new pack files to the index by attaching new layers without reconstructing the existing layers.\n<p>The command &#171;git repack &#8212;write-midx=incremental&#187; allows for adding a new layer to the incremental MIDX index that encompasses recently created pack files. Combined with the repository packing mode &#171;&#8212;geometric&#187;, this new command enables merging new objects from multiple pack files into a larger pack file and, if necessary, packing and merging several adjacent layers of the incremental MIDX index. This strategy allows the &#171;git repack&#187; operation to rewrite only the top layers, leaving the older larger layers untouched, while also preventing uncontrolled growth of the layer chain, maintaining the total number of layers at a level proportional to the logarithm of the total number of objects. <\/p>\n<li class=\"l\"> The generation of object availability bitmaps has been significantly optimized through a new algorithm for traversing the object tree, eliminating unnecessary recursion, caching object positions, sorting bitmaps before merging them with the XOR operation, and reworking the code for creating pseudo-merge bitmaps. In a test repository, these optimizations have reduced the bitmap generation time from 612 to 294 seconds.\n<li class=\"l\"> The ability to run independent hooks in configuration files in parallel has been implemented. Hooks that affect shared state or take it into account, such as changing commit messages or inspecting indexes and the working tree, cannot be run in parallel. However, hooks for linting and unit testing can be executed simultaneously. Hooks that allow parallel execution are configured via the &#171;hook.hook_name.parallel = true&#187; parameter. The number of jobs that can run concurrently is determined by the hook.jobs setting, hook.&lt;event&gt;.jobs, or the command line option &#171;-j&#187;.\n<li class=\"l\"> The team implemented the ability to specify filters in the `git pack-objects --path-walk` command, such as `blob:none`, `blob:limit=`, `tree:0`, `object:type=`, `sparse:` and `combine:`. In the conducted test, filtering blobs while executing `--path-walk` allowed for a 16% reduction in the size of the generated pack file.\n<li class=\"l\"> The `git format-rev` command has been added for formatting revisions and object names mentioned in commit lists or found in arbitrary text (for example, it can be used in hooks for processing commit messages).\n<p>   git last-modified | git format-rev --stdin-mode=text --format=%an<\/p>\n<p>   Junio C Hamano\tbuiltin\/commit.c <\/p>\n<li class=\"l\"> By default, the escaping of most terminal control sequences in informational messages and error texts being passed is enabled. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/dts-prohoster\/\" title=\"proxy server\" data-wpil-keyword-link=\"linked\">proxy server<\/a>. When accessing malicious <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/dts-shicago\/\" title=\"server\" data-wpil-keyword-link=\"linked\">server<\/a> such escape sequences could be used to obscure or modify the output, for example, through escape sequences for cursor movement and text clearing. Support for escape sequences for highlighting elements in color is retained.\n<li class=\"l\"> The `git checkout -m` command now automatically saves conflicting local changes to the stash area without needing to resolve the conflict immediately.\n<li class=\"l\"> The `git push` command now includes the ability to push a branch to multiple external Git servers with a single command. For instance, to push the main branch not only to the main server but also to mirrors, a `publish` group can be created from <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/\" title=\"servers\" data-wpil-keyword-link=\"linked\">servers<\/a> `github`, `gitlab`, and `mirror`:\n<p>   git config remotes.publish `github gitlab mirror`<br \/>\n   git push publish main<\/p>\n<li class=\"l\"> The `git log --graph` command has added the `--graph-lane-limit=` option to restrict the number of vertical lanes when visualizing branches, which allows space on the screen for commit data in repositories with a large number of branches.\n<p>\u2026<br \/>\n* | | | |   619931f561 Merge branch \u2018dl\/posix-unused-warning-clang\u2019<br \/>\n|&#092; &#092; &#092; &#092; &#092;<br \/>\n| * | | | ~ cf48887610 compat\/posix.h: simplify GIT_GNUC_PREREQ() comparison<br \/>\n| * | | | ~ ffd45926dc compat\/posix.h: clean up GIT_GNUC_PREREQ() and UNUSED<br \/>\n|&#092; &#092; &#092; &#092; &#092;~<br \/>\n| * | | | ~ 3f5203eeb4 ls-files: filter pathspec before lstat<\/p>\n<li class=\"l\"> The `git log` and `git rev-list` commands have added the `--max-count-oldest=` option, allowing you to select the N oldest commits in the range.\n<\/ul>\n<p>Source: <a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=65808\">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 \u0440\u0435\u043b\u0438\u0437 \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.55. \u0421\u0440\u0435\u0434\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0431\u043e\u0440\u043a\u0438 \u0441 Rust, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f Linux \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 fsmonitor, \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u043f\u0435\u0440\u0435\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e MIDX-\u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 &#171;git history fixup&#187; \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u0430, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f hook-\u043e\u0432, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 &#171;git format-rev&#187;. \u041a\u043e\u0434 Git \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPLv2+. \u041f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-182402","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 \u0440\u0435\u043b\u0438\u0437 \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.55.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-git-2-55-c-vklyucheniem-po-umolchaniyu-podderzhki-rust\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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 Git 2.55 c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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.55.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-git-2-55-c-vklyucheniem-po-umolchaniyu-podderzhki-rust\" \/>\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=\"2026-06-30T12:48:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-30T12:48:37+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 Release of Git 2.55 with default support for Rust | ProHoster","description":"The release of the distributed version control system Git 2.55 has been announced.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-git-2-55-c-vklyucheniem-po-umolchaniyu-podderzhki-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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 Git 2.55 c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Rust | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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.55.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-git-2-55-c-vklyucheniem-po-umolchaniyu-podderzhki-rust","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":"2026-06-30T12:48:37+00:00","article:modified_time":"2026-06-30T12:48:37+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"182402","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"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-08-05 12:22:12","updated":"2026-08-05 12:22:12","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=182402"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182402\/revisions"}],"predecessor-version":[{"id":182427,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182402\/revisions\/182427"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=182402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=182402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=182402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}