Encryption and decryption happens at the client side.
a) Working centralized: Encryption happens on checkin, decryption on update/diff/any data access.
b) Working distributed (you have local repos): Encryptiion happens on push, decryption on pull.
Does it affect performance? Yes, but it shouldn't be noticeable compared to the data upload/download to a remote server.