103次发布
1.0.0-beta.9 | 2024年2月7日 |
---|---|
1.0.0-beta.8 | 2023年12月15日 |
1.0.0-beta.7 | 2023年10月27日 |
1.0.0-beta.6 | 2023年6月28日 |
0.1.0 | 2016年2月2日 |
110 在 异步
216 每月下载量
495KB
12K SLoC
Pijul
这是 Pijul 的仓库,Pijul 是一个基于异步工作数学理论的可靠且快速的分布式版本控制系统。
许可证
许可证为 GPL-2.0。
文档
虽然我们正在编写文档,但以下是一些有用的命令:
创建仓库
$ pijul init
添加文件
如果您想跟踪文件夹中的所有文件并记录更改,请执行以下操作:
$ pijul rec that_folder
如果您想添加要跟踪的文件:
$ pijul add these_files
进行更改
Pijul 基于更改,因此最重要的命令是创建更改的命令
$ pijul rec
您将看到一个更改草案,您可以批准或编辑它,通过删除部分,其中部分由一个数字(形式为 1.
)后跟操作名称(例如:File addition: "my_file" in "/" 420
)引入。
当然,您可以尝试其他编辑,但它们不一定有效。
协作
远程 是对另一个仓库的引用,例如 pijul@ssh.pijul.com:manual
用于 manual 仓库,或 me@ssh.pijul.com:pijul/manual
,https://nest.pijul.com/pijul/manual
,或本地路径 /path/to/my/repository
。
remote
命令允许您查看保存的远程仓库,并可能删除它们。
push
和 pull
命令与远程仓库交换更改。
克隆仓库目前需要一个目标目录,或者默认使用当前目录作为目标
$ pijul clone https://nest.pijul.com/pijul/pijul
提示:通过 SSH 克隆通常更快。
回到过去
如果您想将文件重置到最后一次记录的版本,只需执行以下操作:
$ pijul reset
如果您想从历史中移除一些更改
$ pijul unrecord PREFIX_OF_CHANGE_HASH
其中 PREFIX_OF_CHANGE_HASH
是更改哈希的一个唯一前缀,可以通过执行 pijul log
来找到。
导入 Git 仓库
如果您使用 --features git
编译了 Pijul,则 git
命令允许您从 Git 仓库导入更改。这是通过重放仓库历史记录实现的,并且没有特别优化,因此在大型仓库上可能需要很长时间。
目前 Git 的一个缺失特性是符号链接,该命令将其视为普通文件(即可能会导入多次)。
关于通道
通道是一种在同一个地方维护仓库的两个相关版本的方式(有点像 Git 中的分支)。
形式上,通道是指向一组更改的指针(通道的 状态 是一组更改)。
但是,通道与 Git 分支不同,且不服务于相同的目的。在 Pijul 中,独立更改可以交换,这意味着在许多 Git 中使用分支的场合,在 Pijul 中没有必要创建通道。
与 Git 分支的主要区别包括
-
更改的身份不依赖于它所在的分支,换句话说,rebase 和 merge 在 Pijul 中是相同的操作。
-
这意味着在解决冲突后,冲突不会神秘地再次出现(这正是
git rerere
的用途)。 -
此外,冲突是在更改之间,因此在一个通道上解决冲突可以解决所有其他通道中的相同冲突。
贡献
我们欢迎所有贡献。此外,由于这个项目旨在使与其他人协作更容易(我们正在接近实现这一点),我们显然将相互尊重和包容性放在首位。
此外,由于这是一个 Rust 项目,我们要求贡献者在记录更改之前在其代码上运行 cargo fmt
。这可以通过将以下行添加到仓库的 .pijul/config
来自动完成。
[hooks]
record = [ "cargo fmt" ]
依赖项
~51–69MB
~1M SLoC