Some observations about CVS conversion (one ugly problem diagnosed)

Marcin Kasperski Marcin.Kasperski at softax.com.pl
Mon Jun 2 08:54:50 CDT 2008


I played a bit with CVS conversion. Spotted some things:

a) It is possible to customize cvsps path and arguments, although it
seems undocumented (I just added note to the wiki). Just do sth like
(in ~/.hgrc or some similar file)

[convert]
cvsps = cvsps -A -u --cvs-direct -q

(the above is default). In particular, in case of problems one can try
dropping --cvs-direct. Or/and pipe output to tee to monitor progress.


b) One thing really worth doing if anything goes awry is to drop -q
(-q orders cvsps to shut up and do not report any problems). I am still
unsure why -q is enabled by default.


c) Not sure where lies the problem, but if I do sth like:

CVSROOT=":pserver:user at host.name:/repo/path"
cvs checkout my_module
cd my_module
hg convert sub_dir

(aka I try to convert subdirectory of checked out module instead of
whole module), then the conversion fails. By default it behaves as if
it hanged, after dropping -q and watching cvsps output I finally found
that the problem lies in 
cvs server: cvs [checkout aborted]: Absolute module reference invalid: `/repo/path/my_module/sub_dir/file_name'

The above happens while some cvs rlog asks for file as above and seems to
be somehow related to the fact that CVS/Repository contains full repo
path in such case (/repo/path/my_module/sub_dir/)

Quick and easy workaround:

cvs checkout my_module/sub_dir

and now sub_dir can be converted without problems. Note that here
CVS/Repository contains relative path (my_module/sub_dir).

Tested using Mercurial 1.0.1 and cvsps 2.1

-- 
----------------------------------------------------------------------
| Marcin Kasperski   | Software is not released,
| http://mekk.waw.pl |  it is allowed to escape.
|                    |
----------------------------------------------------------------------



More information about the Mercurial mailing list