[Bug 3678] New: CVS conversion doesn't properly parse CVSROOT
bugzilla-daemon at bz.selenic.com
bugzilla-daemon at bz.selenic.com
Tue Oct 23 16:54:03 CDT 2012
http://bz.selenic.com/show_bug.cgi?id=3678
Priority: normal
Bug ID: 3678
CC: mercurial-devel at selenic.com
Assignee: bugzilla at selenic.com
Summary: CVS conversion doesn't properly parse CVSROOT
Severity: bug
Classification: Unclassified
OS: All
Reporter: dnschnur at gmail.com
Hardware: All
Status: UNCONFIRMED
Version: 2.2.3
Component: convert
Product: Mercurial
The comments for /convert/cvsps.py:getrepopath correctly note that:
# According to CVS manual, CVS paths are expressed like:
# [:method:][[user][:password]@]hostname[:[port]]/path/to/repository
But the code used to parse paths looks like this:
parts = cvspath.split(":")
...
if len(parts[-2]) > 1:
return parts[-1].lstrip('0123456789')
Now consider a CVSROOT like this:
:pserver:myuser at server/path/to/repository
This is a valid (and common) format, and the function should return
/path/to/repository. But as written it instead returns
myuser at server/path/to/repository.
This mistake gives 'prefix' the wrong value, which means that cvsps.py fails to
strip the prefix from filenames, which eventually results in a 'module not
found' error when the conversion code tries to check out something with a bogus
name.
So the bug is that the function incorrectly requires that paths contain a colon
between the hostname and path portions.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list