Pijul
Darcsと同じパッチベース
開発者
https://www.ecured.cu/images/thumb/9/9a/AnoPicoSurcado_Guayaqui.jpg/260px-AnoPicoSurcado_Guayaqui.jpg
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.icon
パッチベースのやつ
今から開発始めるぞのタイミングでpijul addをする
pijul recordで変更を記録する
一つづつ答える
「一つづつ」ってなに?行ごと、どのタイミングで聞かれるの?
「パッチベース」が何を意味しているのかがわかっていない
Darcsの方を調べたほうがわかりやすいのが出てくるかもしれないmrsekut.icon Gitと比べて何がいいの?
cherry-pickがしやすい、ってどういう意味?
A. パッチベースなのでrebaseやcherry-pickのような操作で、履歴の書き換えが不要という意味mrsekut.icon
パッチごとに永続的なIDを持っている
Gitのcommit idは後から上書きできてしまうmrsekut.icon
GItと比べて何が微妙なの?
Branchの概念がわかりにくい
なんのでためにBranchがある?
論文
Darcsにあった計算量の問題を改善
ファイルが対象
パッチが射
互いにコンフリクトしないパッチは同時に適用出来てかつ適用の順序に依らないことが押し出しに一致する さらにこのパッチ圏を拡張(余完備化)することでコンフリクトが起きないように出来る。 参考
概要や、基本的なコマンドなど
いいmrsekut.icon
概要