TortoiseCVS tries to automatically detect the type of file you are adding to CVS. It can detect whether the file is Text/ASCII, Text/Unicode, or Binary. TortoiseCVS first checks the file extension to determine whether the file is Binary or Text. For example .doc and .exe, are always assumed to be Binary while other extensions, such as .cpp and .txt, are always assumed to be text. TortoiseCVS does this using a built-in list of Binary and Text extensions which includes most the common file extensions. To customize this list, you can copy the file TortoiseCVS.FileTypes from the TortoiseCVS installation directory to your HOME directory and edit it for your needs.
By default TortoiseCVS will also examine the first 4000 bytes of a file to determine the type. This is used in cases where the file extension is not known. These first few bytes are also used to determine whether the file is Text/ASCII or Text/Unicode.
TortoiseCVS also provides a sophisticated plugin mechanisim that you can implement a DLL to perform the file type detection. The details of this plugin interface is also available in the FileTypes.config.
In all cases, the Add Dialog presents the files you are about to add their file types, so that you have a chance to correct the choices made.