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.