EnglishРусский Map

Jujutsu (jj)

title
Jujutsu (jj)
type
concept
summary
jj-vcs/jj - VCS с мутабельными change-ID, историей операций первого класса и представлением рабочей копии в виде коммита
tags
version-control, jujutsu, tooling
created
2026-05-21
updated
2026-05-21
lang
ru
translation_of
jujutsu
source_updated
2026-05-21
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

Jujutsu (jj) - система контроля версий, созданная для замены git в повседневных рабочих процессах с сохранением git в качестве бэкенда. Основные архитектурные решения здесь противоположны решениям git в тех местах, где это действительно важно:

  • Мутабельные change-ID. У каждого изменения есть стабильный идентификатор, сохраняющийся при rebase и amend, - то, чего не хватает git, когда он теряет связь между "C2'" и "C2". Коммиты-преемники становятся сущностями первого класса.
  • История операций. Локальный журнал операций (op log) фиксирует каждое изменение состояния репозитория (коммит, rebase, отмена), поэтому undo, redo и поиск того, "что я делал час назад", выполняются механически.
  • Рабочая копия как коммит. Рабочее дерево само по себе является автоматически обновляемым коммитом; staging area отсутствует. Рабочие процессы со сравнением diff'ов, не укладывающиеся в модель git, получаются сами собой.
  • Конфликты как данные. Неразрешённые конфликты слияния хранятся прямо в коммитах, а не в особом состоянии файловой системы: конфликт можно перебазировать вперёд и разрешить позже.
  • Совместимый с git бэкенд. Репозиториями можно делиться с пользователями git; jj читает и записывает те же самые данные в .git/.

Почему это важно

Поводом для создания этой страницы послужил материал billjings-git-not-fine - аргумент Билла Джингса (Bill Jings) о том, что базовые примитивы рабочих процессов git ломаются под нагрузкой из цепочек PR (stacked PR), асинхронной разработки и мульти-PR-сценариев, которые становятся обычным делом при работе с AI-агентами. В частности, цепочки PR структурно не подходят git, но в jj превращаются в однострочный рабочий процесс.

Схожий контекст описывается в i-dont-want-your-prs и agent-principal-agent-problem - в обоих материалах отмечается тот же самый сдвиг в рабочих процессах, под который и проектировался jj, пусть ни один из них не называет jj напрямую.

Статус

Активный проект организации jj-vcs (github.com/jj-vcs/jj). Эргономика внутреннего гугловского Piper, перенесённая в публичную реализацию на Rust. Несколько крупных open-source-проектов перешли на него для повседневной работы; совместимый с git бэкенд позволяет остальной части команды не менять свои привычные инструменты.

Имеет смысл добавить в watchlist, если понадобится страница в toolbox; пока это страница типа concept, так как вики ссылается на саму идею чаще, чем ссылалась бы на конкретную запись в toolbox.