KeyError exceptions importing from CVS

Frank A. Kingswood frank at
Fri Feb 8 14:59:28 CST 2008

Frank Kingswood wrote:

> I'm getting KeyError exceptions importing from CVS:

I've worked when this happens. The CVS repository has files checked in 
initially on a branch, so the INITIAL->1.1 is missing from the cvsps output.

Assume you have a CVS directory checked out, then create a file for 
which the initial version is on a branch. Here's a script that will 
create such a file in your cwd:

# we need a existing branch, so create a file and tag it
echo one >file_one
cvs add file_one
cvs ci -m initial file_one
cvs tag -b branch_name file_one

# now make the branch the default for the working directory
cvs update -f -r branch_name

# add a new file, which will be on the branch
echo hello >file_two
cvs add file_two
cvs ci -m "new file on branch" file_two

The output from cvs log file_two:

RCS file: /tmp/repository/Attic/file_two,v
Working file: file_two
head: 1.1
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;     selected revisions: 2
revision 1.1
date: 2008/02/08 20:33:32;  author: fk;  state: dead;
branches:  1.1.2;
file file_two was initially added on branch branch_name.
date: 2008/02/08 20:33:32;  author: fk;  state: Exp;  lines: +1 -0
new file on branch

The output from cvsps -A -u --cvs-direct -q:
PatchSet 1
Date: 2008/02/08 20:33:28
Author: fk
Branch: HEAD
Tag: (none)


PatchSet 2
Date: 2008/02/08 20:33:32
Author: fk
Branch: branch_name
Ancestor branch: HEAD
Tag: (none)
new file on branch


When convert/ tries to add the 1.1-> patchset it can not 
find 1.1 in the filerevids dictionary and fails with a KeyError, as 
shown before.


More information about the Mercurial-devel mailing list