deal with permissions
no commit by default
-n doesn't preserve timestamps
better output logic and better warnings