Git Merge 2026 talks are up

Git Merge 2026 talks are up 图片 1

Last week GitButler and OpenAI hosted Git Merge 2026 in Lisbon and it was an incredible conference.

This year we had an amazing amount of interest in all things Git, with sponsorship by GitHub, GitLab, Tangled, Cursor, Pierre and Google.

There were ten main talks on the first day. We recorded every talk, and they are now all up on our YouTube channel.

Here's a quick summary of each one, so if something catches your eye you can go watch the whole thing. (The day before was JJ Con, dedicated to Jujutsu. Those talks are up too, and summarized in a separate post.)

The History of Code Review

Tomas Reimers traced code review from printed Fagan inspections through email patches and web interfaces. He argued that review serves three purposes: checking correctness, keeping changes manageable, and sharing understanding. With agents producing more code, he called for direct agent access to forges, tools that guide reviewers' attention, and reviewing screenshots or running software alongside diffs.

Rust in Git: Status, Internals, and Features

brian m. carlson outlined Git's Rust adoption plans and the portability problems for platforms without Rust support. The implementation tour covered sharing errors between C and Rust, object-ID mappings, and rewriting object conversion in Rust for SHA-256 interoperability. Future work includes safer index and pack parsing and a tool to migrate repositories between hash algorithms.

Git Meta: The Git Notes we deserve

My talk introduced the git-meta proposal and its Rust reference implementation for attaching namespaced metadata to commits, branches, and paths. I walked through storage as ordinary Git trees, merging concurrent updates, and fetching metadata on demand. The closing demo used imported pull-request data to blame lines by PR rather than commit.

Scaling Git for the AI Era

Elijah Newren showed how Git wastes work in large repositories: merge-base searches walk unnecessary history, and incoming pushes create packs faster than maintenance can consolidate them. He presented fixes and ongoing work on those paths, batching missing objects in partial clones, and a shallow-clone push problem that can download gigabytes only to send them straight back to the same server.

Josh: Beyond subtrees

Christian Schilling explained how Josh creates self-contained, filtered Git histories that people can work on and merge back into the original repository. He walked through its reversible filter language, how the reverse mapping preserves files outside the filtered view, and why incremental processing makes repeated filtering practical. The Rust project's repositories have supplied both real users and difficult performance cases.

Checking out another branch of Version Control

Raphaël Gomès and Pierre-Yves David explained how Mercurial's branch model and changeset evolution support sharing rewritten history across clones. Their example used obsolescence markers to trace another developer's amendments and repair a stack whose base had changed. They also compared storage costs with Git, showing how delta encoding compresses large manifests and supports fast diffs without separate repository maintenance.

Rebuilding Git

Patrick Steinhardt explained GitLab's upstream work to make Git's reference and object storage replaceable. He traced the abstractions introduced for reftable and object databases, then demonstrated a deliberately basic SQLite backend. The larger example used immutable pack files, reftables, and manifests to let multiple servers share repositories in object storage, with consistent snapshots for readers and atomic publication of writes.

The Git Forge Must Be Hackable

Anirudh Oppiliappan showed how Tangled separates repository hosting, CI, and its interface through open APIs and AT Protocol. His demo replaced the repository storage with a custom server running on Cloudflare and had an agent create and populate a repository without changing Tangled itself. He also previewed stacked pull-request reviews and explained how users can substitute their own CI services.

Git Smartlog: Can't See the Branches for the Trees

Toon Claes proposed new git log options for untangling graphs, filtering to your own branches, and collapsing unrelated history. His examples added ahead/behind counts, worktree locations, and hooks for displaying CI status. These were proposals, not upstream features: his preferred approach was composable flags and a user-defined alias, so people could choose what their smartlog shows.

SHA-256 at a Hyperscaler

Emily Shaffer explained why adopting SHA-256 requires converting repository history and accounting for submodules, old commit references, and tools that assume SHA-1 IDs. She described Google's temporary use of Copybara to bridge incompatible repositories, then outlined a gradual migration enabled by planned server-side interoperability: store the source of truth in SHA-256 while clients and vendors switch over at their own pace.

See you next year

Thanks to all the speakers and sponsors for helping make this happen, and to everyone who came to Lisbon. We'll see you at the next one!

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论