版本控制系统技术演进史,从SCCS到Git( 六 )

SCCS检入仅存储增量或文件更改 , 而不是每次存储整个文件内容 。 这样可以减小历史记录文件的大小 。 每次检入时 , 增量都存储在历史记录文件内部的称为增量表的结构中 。 如前所述 , 实际文件内容或多或少是逐字复制的 , 带有特殊的控制序列 , 用于标记已添加和已删除内容的各个部分的开头和结尾 。 由于SCCS历史记录文件不使用压缩 , 因此它们通常比要跟踪的实际文件大 。

SCCS使用一种称为交错增量的增量方法 , 支持恒定时间检出 , 而不管检出的修订版有多老 。 即较旧的修订版检出所花费的时间不会比新的修订版更长 。

需要注意的重要一件事是 , 所有文件都在SCCS中被单独跟踪和检入 。 没有办法将更改作为一个原子单位的一部分检入多个文件(和Git提交一样) 。 每个跟踪的文件都有一个对应的历史文件 , 用于存储其修订历史 。

当检出文件以在SCCS中进行编辑时 , 为了防止更改被其他用户覆盖 , 文件上将放置一个锁 , 但是这会限制多用户的编辑从而开发效率 。

SCCS支持可以在特定文件内存储更改序列的分支 。 分支可以与原始版本合并回去 , 也可以与同一父级的其他分支版本合并 。

推荐阅读