[Criticism] Commits are not atomic. [Response] 
Some networks and servers have insufficient resilience to complete a commit without crashing; this was even more common in the past. The lack of atomicity is mitigated by the fact that in many code management processes, development work is performed on branches and then merged into the trunk after code review. That final merge is atomic, and performed in the data center by QA. The term atomic is sometimes used in the transactional database sense, where a commit automatically rolls back if it fails for any reason, and sometimes in the sense that each commit can be uniquely identified. Tracking each commit can be accomplished by modifying the correct trigger.