パッチベースのバージョン管理システム「Pijul」がベータに

バージョン管理システム「Pijul」の開発者は1月18日、初の正式版に向けたベータ版を公開した。

 Pijulはオープンソースの分散型バージョン管理システム。git、mercurial、svnなどがスナップショットベースであるのに対し、Pijulはdarcsと同様にパッチの理論を意味する「Theory of Patches」に基づく。パッチベースは簡単に学習できるが速度が遅いといわれるが、Pijulは高速さと拡張性も備えるという。darcsとの違いはスピードに加え、ブランチのサポートも挙げている。

 結果やバージョンの識別子を変えることなく、独立した変更を順番に関係なく適用できる。git rebaseやhg transplantを使うよりもシンプルなワークフローで作業ができるとしている。ブランチのような機能として”チャネル”を備えるが、他のシステムよりも重要度は低いという。また、コンフリクトは”マージに失敗”ではなく標準のケースとしてモデルされる。ブランチ内で複数の機能を開発してその一部を運用環境向けにプッシュできる。

 Pijul 1.0ベータは、2020年11月のアルファ(1.0.0-alpha)公開以来のベータ版となる。バックエンドのキーバリューストアSanakirjaを再設計し、高速化とモジュラー化を進めた。  rsyncに似たアルゴリズムを使うことで、パッチがオペレーションするファイルの種類を増やし、単一のリポジトリやバイナリファイル内で異なるエンコードを使ったファイルも対象となった。  関連しないリポジトリや部分クローンのマージを再設計した。これにより、大規模なリポジトリをより管理しやすくなるという。  安定性については、ベータ版となったことでフォーマットには当面は変更を加えないことを約束している。  今後、テスト、デバッグ、性能のチューニングを行った後に正式版をリリースするとしている。

 PijulはプロジェクトのWebサイトより入手できる。ライセンスはGPL v2。

Pijul
https://pijul.org/