I study two source control systems and find that their branching strategies are very different.
This Perforce copies its entire source file to a new branch, although it adapts some tricks (eg, lazy instance, "p4 -v") to prevent space growth, but in the end it will consume more space and leave more metadata. Instead , in GIT, branching basically moves pointers. I am wondering why Perforce cannot adapt the same approach? Is this because it involves the burden of storing snapshots (like in git) instead of the difference in the files (like in Perforce)?
Also, why does GIT store snapshots of files instead of the difference? Is there a need for this? Does this mean that in general the repository of GIT code will be larger than in Perforce? If the same needs to be stored on both systems? Will the commit be longer for GIT?
source share