When attempting to fetch the rlog for a path that does not exist in
the repository, the CVS server will respond with the following lines:
E cvs rlog: could not read RCS file for <path>
ok
That error case was not handled in fetch_rlog so ensure it returns None
when encountering it.
The issue was spotted when the loader attempts to fetch more rlog data from
Attic directories. The paths of these Attic directories are computed from
those of the files in the repositories but it exist cases where those
directories do not exist.
It fixes the loading of that repository: ssh://anoncvs@anoncvs.NetBSD.org/cvsroot/htdocs.
Code below triggers that issue prior that patch.
from urllib.parse import urlparse from swh.loader.cvs.cvsclient import CVSClient client = CVSClient(urlparse("ssh://anoncvs@anoncvs.NetBSD.org/cvsroot/htdocs")) client.fetch_rlog(b"htdocs/docs/Hardware/Busses/Attic")