独孤九剑(0x03) - 当前目录缓存篇
Git 通过二进制文件 Git 当前目录缓存至少应该满足以下功能:
Git index 文件格式当前目录缓存文件承担多个 Git 命令之间的数据交换和传递,它的文件格式也比较重要。 Git index (version 2) 使用二进制方式存储,存储内容如下:
详细的格式可以在这里找到 Git index format。 看到了 Linus 在一开始就设计了版本号,为以后 index 的文件格式变动提供方便,值得我们借鉴。 除了 Git object 要求的 flags/size/path name/sha1 之外,每个index 相还存储了 stat 2 的信息。对 index 文件也使用 sha1 编码,用来验证数据的正确与否。 另外,index 文件的安排和实现,都尽可能少的使用空间,并用二进制方式存储。节约资源是大牛的基本素养! Dit 选择使用 version 2 版本的 index 文件格式实现。 通过解析 Git index 文件到 Git 基础数据结构,Git 的雏形就得到了。接下来的几天里,我会实现一个初级版本的 Dit 系统,因为设计和内容都大幅度的模仿了 Git,所以会使用和 Git 相同的 License 开源。 我写了一个简易版本的 Git index 解析工具,去 Github 查看。 木乙言己 zddhub 出品 文章只写给自己,如果你也喜欢,欢迎扫描以下二维码关注哦~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |