Well, actually, every change *is* a branch, only in most cases is appears to be
the only branch.
"every change is a branch" to my understanding is not correct and will mislead. Your sense of 'actully' and 'in most cases' is not helping me at all. Please make it clear, what you meant.
My understanding is as follows:
A branch gets created when a change is made not to the recent object, but to an older one. each branch can grow linearly till someone deviates by selecting an ancient descendant in that branch. By default we consider the root as the first branch. This is our understanding. the storage algorithm that is implemented in the backend tracks each objects' history. We are calculating the branches by taking the history of each object.
Are we going wrong?
Nagarjuna