How To: CVS to Mercurial Conversion Using ConvertExtension

For my personal projects, I “was” using CVSNT for version control. I had an old laptop which was crashed few days ago. Fortunately, I had a backup of all the projects CVS files. I got new laptop and I had to install CVSNT but I got another shock. Now for CVSNT, I have to pay $$$ and cannot download older version which I was using. After hours of research, I found the version I was using at Finally I installed CVSNT. Now I have installed TortoiseHG for Mercurial and tried its “convert” extension but I was getting following error.

initializing destination hg\GD repository
connecting to :sspi:Administrator@localhost:/cvsdata
abort: unexpected response from CVS server (expected "Valid-requests", but got
'E cvs [server aborted]: Root :sspi:Administrator@localhost:/cvsdata must be an absolute pathname\n')

After struggling a lot with different trial and error methods, I found a solution. I was using SSPI (Windows Authentication) protocol but then I copied all the CVS RCS files (except for CVSROOT folder) into a temporary folder and used local (Locally Mounted Folder) protocol and used full path to temporary folder. When you try to fetch the list of modules, it will ask for initializing repository by creating a new CVSROOT folder. I allowed it to create CVSROOT and created new repository. Finally, I checked out the modules from CVSNT and used hg convert command to convert from CVS to Mercurial.

PS: If you are using TortoiseCVS (GUI for CVSNT), make sure to uninstall another redundant CVSNT version which the installer will automatically install. Make sure you have enabled extension “convert” for TortoiseHg.



Leave a Reply

Your email address will not be published. Required fields are marked *