Although a bit different, I think one could argue the thing that makes git better at source control than its predecessors is that it stopped trying to do the practical reductionism thing that had come before. Rather than trying to control file versions, it tries to control repository (groups of files) versions, and the unit of control is the whole repository/​system rather than individual files. This one simple change amazingly fixed all kinds of problems that were incredibly difficult to solve until someone had the bright idea to stop reducing the problem to a smaller level of granularity.
Although a bit different, I think one could argue the thing that makes git better at source control than its predecessors is that it stopped trying to do the practical reductionism thing that had come before. Rather than trying to control file versions, it tries to control repository (groups of files) versions, and the unit of control is the whole repository/​system rather than individual files. This one simple change amazingly fixed all kinds of problems that were incredibly difficult to solve until someone had the bright idea to stop reducing the problem to a smaller level of granularity.