swh.loader.cvs.cvsclient module#
Minimal CVS client implementation
- swh.loader.cvs.cvsclient.decode_path(path: bytes) Tuple[str, str] [source]#
Attempt to decode a file path based on encodings known to be used in CVS repositories that can be found in the wild.
- Parameters:
path – raw bytes path
- Returns:
A tuple (decoded path, encoding)
- class swh.loader.cvs.cvsclient.CVSClient(url)[source]#
Bases:
object
Connect to a CVS server at the specified URL and perform the initial CVS protocol handshake.
- checkout(path: bytes, rev: str, dest_path: bytes, expand_keywords: bool)[source]#
Download a file revision from the cvs server and store the file’s contents in a temporary file. If expand_keywords is set then ask the server to expand RCS keywords in file content.
From the server’s point of view this function behaves much like ‘cvs update -r rev path’. The server is unaware that we do not actually maintain a CVS working copy. Because of this it sends more information than we need. We simply skip responses that are of no interest to us.