Jujutsu — когда Git встретил Mercurial и стал удобнее
Знакомая ситуация? Только собрался сделать git commit, как получаешь "Your local changes to the following files would be overwritten...". Или потратил полчаса на разрешение конфликтов при rebase, а они снова возникают при следующем слиянии. Jujutsu (или просто jj) — это свежий взгляд на систему контроля версий, который избавляет от этих и многих других проблем.
Что такое Jujutsu?
Jujutsu — это VCS нового поколения, которая:
- Совместима с Git «из коробки» (использует Git как бэкенд)
- Вдохновлена лучшими идеями Mercurial и Darcs
- Добавляет инновационные фичи вроде автоматического разрешения конфликтов
Разрабатывается с 2019 года, сейчас используется командой Google (хотя и не является официальным продуктом компании).
Кому стоит присмотреться?
- Разработчикам, уставшим от сложностей Git
- Командам, которые ценят удобство Mercurial
- Всем, кто работает с большими репозиториями и сложными ветвлениями
5 причин попробовать Jujutsu
1. Рабочая копия — это полноценный коммит
В отличие от Git, где есть разделение на рабочую директорию, индекс и коммиты, в Jujutsu рабочая копия сама является коммитом. Это значит:
- Никаких "рабочая директория грязная"
- Можно задавать сообщение коммита до завершения изменений
- Не нужен
git stash— просто переключайтесь между коммитами
# В Git вам бы пришлось:
git stash
git checkout other-branch
git stash pop
# В Jujutsu просто:
jj checkout other-branch
2. Конфликты — объекты первого класса
В Git конфликты — это временное состояние, которое нужно немедленно разрешать. Jujutsu хранит информацию о конфликтах прямо в коммитах:
- Можно отложить разрешение конфликтов
- Решения автоматически применяются к потомкам коммита
- Нет страха «испортить» историю при rebase

3. Полная история операций
Jujutsu записывает все действия с репозиторием:
- Кто что сделал и когда
- Состояние репозитория после каждой операции
- Возможность откатить любое действие, не только последнее
Это особенно полезно при совместной работе — теперь можно точно сказать, «как мы сюда попали».
4. Автоматический rebase
При изменении коммита все его потомки автоматически перебазируются. В Git для этого нужно явно указывать --update-refs, а в Jujutsu это происходит по умолчанию.
5. Совместимость с Git
Можно:
- Работать с существующими Git-репозиториями
- Использовать GitHub/GitLab/Bitbucket
- В любой момент вернуться к обычному Git

Технические особенности
- Написана на Rust (использует библиотеку gitoxide)
- Модульная архитектура — в будущем возможны другие бэкенды кроме Git
- Оптимизирована для производительности
Когда особенно пригодится?
- При активном рефакторинге — автоматический rebase сохранит нервы
- В больших командах — понятная история операций упрощает коммуникацию
- При работе с длинными ветками — конфликты разрешаются предсказуемо
Насколько готов к production?
Проект активно развивается, но:
- Основные функции стабильны
- Нет поддержки submodules
- Возможны изменения форматов хранения до версии 1.0.0
Разработчики (включая создателя Мартина фон Цвайгберга) уже больше года используют Jujutsu для работы над самим Jujutsu — хороший знак!
Как начать?
- Установите через пакетный менеджер:
# macOS brew install jj # Linux (Ubuntu) sudo apt install jj - Пройдите официальный туториал
- Попробуйте на тестовом репозитории
Jujutsu — это не «ещё один клон Git», а свежий взгляд на контроль версий. Если вы:
- Часто путаетесь в Git
- Цените удобство Mercurial
- Хотите больше предсказуемости при работе с историей
— самое время попробовать. Возможно, это будет ваш новый основной VCS.
А если остались сомнения — загляните в сообщество Jujutsu, разработчики активно помогают новичкам.
