GitHub

Move Fast and Fix Things

Dec 15, 2015Vicent Martí
Move Fast and Fix Things
SummaryAI, from the source post

This post details the replacement of GitHub's custom shell script-based merge strategy for bare repositories with a new implementation using libgit2 and its in-memory index. The new approach, accessed via a dedicated `create_merge_commit` RPC call and implemented using Rugged (Ruby bindings for libgit2), eliminates the need for temporary working directories and indexes, leading to improved speed, simplicity, and efficiency. The post outlines the technical challenges of merging in a bare repository environment, the shortcomings of the previous script-based workaround, and the detailed rollout strategy involving RPC deployment, Rails application refactoring, and production benchmarking with Scientist.

More from the Git Merge Strategy Optimization trail