I added some debug output. The problem lies in these lines in _get_rcs_filename: rcs_file = osutils.pathjoin(self._cvs_root, self._cvs_module, filename + ',v')
The first two arguments are unicode strings, while the third one is a byte string. Given the fact that afaik CVS doesn't particularly care about encodings, and that there might well be some legacy files in some Attic which are illegal according to current filesystem encoding. So paths inside the repository should be treated as binary, and the fact that a clean conversion using the current filesystem character set might be impossible should be taken into account as well. I'm thinking about a patch, but have no good solution yet.
I added some debug output. The problem lies in these lines in _get_rcs_filename:
rcs_ file = osutils. pathjoin( self._cvs_ root, self._cvs_module,
filename + ',v')
The first two arguments are unicode strings, while the third one is a byte string. Given the fact that afaik CVS doesn't particularly care about encodings, and that there might well be some legacy files in some Attic which are illegal according to current filesystem encoding. So paths inside the repository should be treated as binary, and the fact that a clean conversion using the current filesystem character set might be impossible should be taken into account as well. I'm thinking about a patch, but have no good solution yet.