Pijul

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: pijul.org

Pijul — распределённая система контроля версий с уникальной моделью представления изменений, основанная на теории изменений (патчей). Проект разработан с целью упростить отслеживание и слияние изменений в текстовых репозиториях за счёт формализации патчей как первичных объектов: патч описывает разницу между состояниями и может комбинироваться, переупорядочиваться и откатываться с сохранением семантики изменений. Архитектура Pijul ориентирована на корректное разрешение конфликтов и на поддержку нелинейного развития проектов с множеством параллельных ветвей.

Разработка Pijul началась в середине 2010-х годов и продолжалась под влиянием идей из теории патчей и формальных моделей изменений. Проект реализует собственный формат репозитория и набор инструментов командной строки, обеспечивающих создание, применение и синхронизацию патчей между узлами. Pijul стремится к простоте пользовательского интерфейса при сохранении сильных теоретических гарантий относительно свойств операций слияния и повторного применения изменений.

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