Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Well, sometimes the API of a piece of software presents one model, while the implementation actually uses a different model underneath for various reasons.

In particular in Git, some commands expose the commits-as-diffs model (cherry-pick, rebase) while others present the commits-as-snapshots model (checkout). However, if you were to look at various layers of git code, the model is either commits-as-snapshots, or neither (compressed storage).

You could also theoretically change the entire implementation of git to store commits as diffs, and offer the exact same API as it does today (probably with differences in the way conflicts are resolved, and definitely with differences in performance).



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: