generated at
Pijul
圏論と関係がある
Darcsの影響を受けている
Darcsと同じパッチベース
開発者



Pijul版のGitHubみたいなやつ
これがPijulのリポジトリ
一応githubにもあるが、更新されていない


PijulのRepository構造
Tree
追跡しているファイル群
Pristine
追跡対象ファイルの、Repositoryに記録されている状態
Patchが記録されれば、Pristineが更新される
Working Copy
現在のファイルの状態そのもの
Patch
PristineとWorking Copyの差分が保存されたもの
捕捉
Gitでいうstaging areaなるものは存在しない
branchのことはchannelと呼ぶ



Darcsの以下のような問題を解決するために生まれた
パフォーマンス問題
プロジェクトが大きくなると重くなる
Gitとコマンドが違う
commitじゃなくてrecordだったり
logじゃなくchangesだったり
branch機能がない


install
alphaでもいくつかversionが更新されているっぽい
Twitterで確認すると良いかも
2021/1/14現在の最新はalpha.28
$ cargo install pijul --version 1.0.0-alpha.28 でうまくいった
何が言いたいのかと言うとDocsは頻繁には更新されてないのであてにならないmrsekut





パッチベースのやつ
今から開発始めるぞのタイミングで pijul add をする
pijul record で変更を記録する
一つづつ答える
「一つづつ」ってなに?行ごと、どのタイミングで聞かれるの?


「パッチベース」が何を意味しているのかがわかっていない
Darcsの方を調べたほうがわかりやすいのが出てくるかもしれないmrsekut
パッチ理論ってなんやねん
ぐぐったらホモトピー型理論と関連のある論文が出てきた ref
Gitと比べて何がいいの?
cherry-pickがしやすい、ってどういう意味?
A. パッチベースなのでrebaseやcherry-pickのような操作で、履歴の書き換えが不要という意味mrsekut
パッチごとに永続的なIDを持っている
Gitのcommit idは後から上書きできてしまうmrsekut
GItと比べて何が微妙なの?
Branchの概念がわかりにくい
なんのでためにBranchがある?


圏論との関連
論文
Darcsにあった計算量の問題を改善
パッチ圏を構成 ref
ファイルが対象
パッチが射
互いにコンフリクトしないパッチは同時に適用出来てかつ適用の順序に依らないことが押し出しに一致する
さらにこのパッチ圏を拡張(余完備化)することでコンフリクトが起きないように出来る。




参考
概要や、基本的なコマンドなど
いいmrsekut
概要