Pijul,名字是墨西哥语,j
发 h
的音,沟嘴犀鹃,一种共同筑巢的杜鹃鸟。
patch
),保存的是差异,并且支持二进制文件,节省空间。patch
。rebase
也是安全的。如果你在 Git 里把 A-B-C
的 B
rebase
到 D
,你在各种教程里看到的结果都是 D-B1-C1
,如果你再变回去就成了 A-B2-C2
,B
B1
B2
的内容一模一样,却有不同的 Hash ID,都存在你的仓库里。在 Pijul 里 rebase
后是 D-B-C
,变回去还是 A-B-C
。dangling patch
,但是目前应该是没有实现类似功能。有一个文件,只包含两行,第一行一个字母 A
,第二行一个字母 B
。
A
B
两个人同时在本地工作区编辑这个文件。
第一个人在原始内容上面增加一个字母 G
并提交:
G
A
B
然后又增加字母 A
B
并提交:
A
B
G
A
B
第二个人在原始内容中间增加字母 X
并提交:
A
X
B
现在合并两个人的“工作成果”,Git、SVN、Mercurial 等版本管理工具会生成下面左边的结果,Pijul 的是右边:
A A
X B
B G
G A
A X
B B
Git SVN hg | Pijul |
---|---|
需要说明的是这里不存在冲突,因为两个人都没有修改原始的 A
B
。造成左图的原因是三路差异算法不能识别出绿色的 A
B
是后加的,不是原始的 A
B
。