I know Git doesn't save diffs in the repository (as SVN does). Instead it saves a new tree-object for each commit and new blob-objects for every file that has changed. So, when merging two branches, why is it not enough to merge only both branch-heads? Why must a merge-base be found to apply all the intermediate steps within a merge?
Thx very much for each answer.