git works well for this