Some observations about CVS conversion (one ugly problem diagnosed)
Giorgos Keramidas
keramida at ceid.upatras.gr
Tue Jun 3 04:09:18 CDT 2008
On Mon, 02 Jun 2008 15:54:50 +0200, Marcin Kasperski <Marcin.Kasperski at softax.com.pl> wrote:
> 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/)
Why is CVS/Repository a problem in that case?
I just tried converting src/usr.bin/false from FreeBSD's CVS tree:
: keramida at kobe:/tmp$ ncvs co false
: cvs checkout: Updating false
: U false/Makefile
: U false/false.1
: U false/false.c
: keramida at kobe:/tmp$ hg convert false false-hg
: initializing destination false-hg repository
: connecting to /home/ncvs
: scanning source...
: sorting...
: converting...
: 22 Initial revision
: 21 BSD 4.4 Lite Usr.bin Sources
: 20 Add $Id$, to make it simpler for members of the translation teams to
: 19 $Id$ -> $FreeBSD$
: 18 MFC: recent mdoc(7) fixes.
: 17 MFC: rev. 1.5, rewording
: 16 MFC: typo
: 15 MFC: remove whitespace at EOL.
: 14 MFC: markup and misc fixes.
: 13 MFC: Reduce gratuitous diffs to -CURRENT.
: 12 mdoc(7) police: use the new features of the Nm macro.
: 11 Slightly re-word sentence to allow using .Nm macro without parameter
: 10 Fix typo
: 9 mdoc(7) police: removed HISTORY info from the .Os call.
: 8 Remove whitespace at EOL.
: 7 Remove obfuscating details of using the false(1) and true(1) utilities
: 6 Add a note that some shells may have the command built-in.
: 5 Be pedantic; we don't know of any shell that provides
: 4 WARNS=2 fixup.
: 3 Remove leaf node WARNS?=2 (that mainly I added). This should
: 2 A function which takes no arguments has an argument list spelled (void) in the
: 1 Consistently use FBSDID
: 0 Harmless forced commit to re-test commit scripts
: updating tags
: keramida at kobe:/tmp$ cd false-hg
: keramida at kobe:/tmp/false-hg$ hg short --limit 3
: 23:547b3fe883ce | 2008-06-03 07:05 +0000 | convert-repo: update tags
: 22:58124ae5bca2 | 2003-02-19 02:10 +0200 | peter: Harmless forced commit to re-test commit scripts
: 21:855a7087a246 | 2002-06-30 08:21 +0300 | obrien: Consistently use FBSDID
: keramida at kobe:/tmp/false-hg$
Things seem to work when a 'CVS module' is checked out.
Making a CVS checkout of src/usr.bin/false that is under an usr.bin/
directory seems to work too:
: keramida at kobe:/tmp$ rm -fr false*
: keramida at kobe:/tmp$ ncvs co -d usr.bin -l src/usr.bin
: cvs checkout: Updating usr.bin
: U usr.bin/Makefile
: U usr.bin/Makefile.inc
: keramida at kobe:/tmp$ cd usr.bin
: keramida at kobe:/tmp/usr.bin$ cvs -qR up -APd false
: U false/Makefile
: U false/false.1
: U false/false.c
:
: A this point /tmp/usr.bin is a CVS checkout of src/usr.bin/ but it
: only contains an up to date copy of usr.bin/false/
:
: keramida at kobe:/tmp/usr.bin$ cd ..
: keramida at kobe:/tmp$ hg convert usr.bin/false false-hg
: initializing destination false-hg repository
: connecting to /home/ncvs
: scanning source...
: sorting...
: converting...
: 22 Initial revision
: 21 BSD 4.4 Lite Usr.bin Sources
: 20 Add $Id$, to make it simpler for members of the translation teams to
: 19 $Id$ -> $FreeBSD$
: 18 MFC: recent mdoc(7) fixes.
: 17 MFC: rev. 1.5, rewording
: 16 MFC: typo
: 15 MFC: remove whitespace at EOL.
: 14 MFC: markup and misc fixes.
: 13 MFC: Reduce gratuitous diffs to -CURRENT.
: 12 mdoc(7) police: use the new features of the Nm macro.
: 11 Slightly re-word sentence to allow using .Nm macro without parameter
: 10 Fix typo
: 9 mdoc(7) police: removed HISTORY info from the .Os call.
: 8 Remove whitespace at EOL.
: 7 Remove obfuscating details of using the false(1) and true(1) utilities
: 6 Add a note that some shells may have the command built-in.
: 5 Be pedantic; we don't know of any shell that provides
: 4 WARNS=2 fixup.
: 3 Remove leaf node WARNS?=2 (that mainly I added). This should
: 2 A function which takes no arguments has an argument list spelled (void) in the
: 1 Consistently use FBSDID
: 0 Harmless forced commit to re-test commit scripts
: updating tags
: keramida at kobe:/tmp$
I can't reproduce what you are seeing :(
More information about the Mercurial
mailing list