假设一个文档5k,修改内容增加了1k内容,这时候服务器上占用多大空间?一份6k文档,还是5+6=11k?两份文档,还是5K+1K两份文档?
追答这个涉及到SVN的存储机制,几句话好难讲清的。不能单独只看某一个文件。
首先 我明确的告诉你:如果你这次提交只修改了这一个文件,那么针对这个提交的版本SVN存储的大概是6K多一点(数据压缩了点,然后增加了其他文件的最新版本索引)
明天我再来完善这个答案,然后告诉你怎么做实验来证明SVN的存储方式,提前透露关键信息:
1、SVN的版本号针对的整个库的目录存储,而不是某一个文件,哪怕你只修改了某个文件,所以说“aa.c文件的版本是5是错误的,而应该说某SVN项目第5个版本里对应的aa.c文件当时状态是这样的”
2、SVN 采用类增量存储,格式采用的是本身的存储格式(DB或FSFS)二进制文件,不是实际的文件类型;不是完全的增量只存储修改的部分,也不是每个提交版本把所有数据存储一份。(明天来详细解答,然后把实验方法讲一下)
我指的覆盖,意思是说完全删除原来的文件,不备份了