tech-repository archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS conversion to Mercurial

Adam asked how I went about my conversion. These things can be tricky, but Mercurial is very easy to work with even if it does spit out the occasional mysterious Python exception (Python seems to specialise in mysterious exceptions).

You will need pkgsrc and a local copy of the CVS repository.

1) Install Mercurial from pkgsrc/devel/mercurial.

2) Enable the conversion tool by putting the following in ~/.hgrc

3) Checkout a local copy of the source tree you want from your local copy of the CVS e.g. "cvs -d /Volumes/Scratch/vcs/cvsroot co src".

4) Convert it with the command "hg convert src hg-src".

I had to tune the VM settings on my NetBSD box because the file cache was killing me. My current sysctl vm settings are
  vm.anonmin = 10
  vm.filemin = 5
  vm.execmin = 5
  vm.anonmax = 90
  vm.filemax = 10
  vm.execmax = 30

If you get an exception about an invalid index, then you have a file in your CVS repository with a tag that refers to revision number "1". I think someone botched a branch tag at some point. The tag always seems to be "magnum" and finding it can be hard. I remove it by editing the repository directly with "rcs -nmagnum".

These are the files I found in the "src" repository that caused Mercurial trouble.

These are the command I ran to remove the tag that Mercurial couldn't handle.
  cd /Volumes/Scratch/vcs/cvsroot/src
  rcs -nmagnum sys/arch/i386/conf/Attic/files.i386.newconf,v
  rcs -nmagnum sys/arch/i386/isa/Attic/dma.c,v
  rcs -nmagnum sys/scsi/Attic/scsi_base.c,v
  rcs -nmagnum sys/sys/scsiio.h,v
  rcs -nmagnum sys/scsi/Attic/uk.c,v sys/scsi/Attic/su.c,v
rcs -nmagnum sys/scsi/Attic/scsi_debug.h,v sys/scsi/Attic/ scsi_ioctl.c,v

Home | Main Index | Thread Index | Old Index