ps:这只是我个人的理解
举个例子,一个工程t有两个文件a,b,假设这两个分别存在在磁盘的空间为block1(5k)和block2(3k)
,修改了a文件,修改后少了1k
1. git快照:保存a文件block1(5k),生成新a1文件(4k)的block3,这时候版本引用就指向了a1,但是a还保留着,
因为他是上一个版本的数据,后面如果切换到上一个版本的时候,a文件不在就不知道怎么还原。
2. svn文件差异,保存a文件block1(5k),生成新的差异文件a2的block4(1k)
因为git快照是在原有的基础上重新生成一份新的文件a1(有点像备份,但我们平常理解的备份一般都是和原文件一样的),
修改后的版本就直接load下来(a1文件),但是svn差异文件a2只是差异文件,此时版本a文件应该是a2与a进行merge操作得到a3(4k),这个merge过程会慢点。此时如果针对工程t,那么修改后的版本工程:git快照下下来的就是a1,b,而svn则是a3,b。