Pijul — распределённая система контроля версий с уникальной моделью представления изменений, основанная на теории изменений (патчей). Проект разработан с целью упростить отслеживание и слияние изменений в текстовых репозиториях за счёт формализации патчей как первичных объектов: патч описывает разницу между состояниями и может комбинироваться, переупорядочиваться и откатываться с сохранением семантики изменений. Архитектура Pijul ориентирована на корректное разрешение конфликтов и на поддержку нелинейного развития проектов с множеством параллельных ветвей.
Разработка Pijul началась в середине 2010-х годов и продолжалась под влиянием идей из теории патчей и формальных моделей изменений. Проект реализует собственный формат репозитория и набор инструментов командной строки, обеспечивающих создание, применение и синхронизацию патчей между узлами. Pijul стремится к простоте пользовательского интерфейса при сохранении сильных теоретических гарантий относительно свойств операций слияния и повторного применения изменений.
- Модель патчей: изменения представляются в виде атомарных патчей, которые можно комбинировать и реорганизовывать без потери информации о семантике изменений.
 - Корректное слияние: алгоритмы, основанные на теории патчей, минимизируют ложные конфликты и обеспечивают детерминированное разрешение пересечений изменений.
 - Распределённая синхронизация: поддержка обмена патчами между репозиториями без центрального сервера, с возможностью оффлайн-работы и последующей интеграции изменений.
 - История без потерь: сохранение полной истории патчей и их зависимостей, что позволяет восстанавливать состояния и анализировать эволюцию проекта.
 - Нелинейная разработка: удобная работа с ветвями и параллельными потоками разработки благодаря независимым объектам изменений.
 - Командная строка и API: инструменты для управления репозиториями, создания патчей, их ревью и интеграции в существующие рабочие процессы.
 - Формальные гарантии: использование математической модели патчей даёт основания для доказуемых свойств операций слияния и перестановки изменений.
 - Поддержка текстовых форматов: оптимизирован для работы с исходным кодом и другими текстовыми файлами, обеспечивая аккуратное отслеживание строковых изменений.
 - Масштабируемость: архитектура, позволяющая эффективно работать с большими репозиториями и интенсивными потоками изменений за счёт локальных представлений патчей.
 - Сообщество и лицензирование: проект доступен в виде свободного программного обеспечения; конкретные детали лицензии и статус разработки могут меняться и требуют проверки в актуальных источниках.