5 个不稳定版本
0.3.1 | 2022年2月16日 |
---|---|
0.3.0 | 2021年3月21日 |
0.2.2 | 2019年9月8日 |
0.2.0 | 2018年3月7日 |
0.1.0 | 2017年8月6日 |
#908 在 文件系统
27 每月下载次数
用于 rsure
38KB
734 行
Weave 文件支持
测试
许多测试将 crates 的输出与 sccs 命令生成的输出进行比较。在许多 Linux 发行版中,可以在cssc包中找到兼容版本。
lib.rs
:
Weave 增量,受 SCCS 启发。
SCCS 版本控制系统是较早的源代码管理系统之一(1973年)。尽管其中许多概念在 git 时代已经过时,但它所使用的底层“weave”增量格式实际上是一种表示只在不同部分的数据的多个版本的好方法。
此包实现了基于 weave 的“纯文本”存储,其中纯文本由由换行符分隔的 UTF-8 可打印字符的行组成。
格式类似于 SCCS,但去除了 SCCS 中的一些相对较差的设计决策,例如在文件顶部放置校验和,以及使用限制大小的字段,例如文件中的行数,或使用两位数的年份。然而,weave 文件的主体,即描述插入和删除的部分,是相同的,这使得我们可以通过与 sccs 的存储进行比较来测试此版本。
使用 NewWeave
编写 weave 文件,它像常规文件写入器一样工作。文件本身有一些少量的元数据,但主要是初始文件的正文内容。
使用 DeltaWriter
将增量添加到 weave 文件中。它也像常规文件一样写入,然后使用 DeltaWriter::close
方法提取基本版本并使用 diff
命令写入 weave 的新版本。在过程中,close
方法将创建多个临时文件。
编织数据使用 NamingConvention
存储的,这是一个管理相关文件集和临时文件的特质。 SimpleNaming
是它的基本表示,包括基本名称、备份文件和一些临时文件。文件中的数据可以被压缩。
依赖关系
~4–6MB
~111K SLoC