Causality-Based Versioning