I examined the script and I found that the problem is with the
lazy use of and mixing path separators and slashes.
It is working (but not OK) on unix but is not working on other systems.
The script regards the whole directory tree as a flat directory
with file names like \\dir1\dir2\\...\\filen.c and then
maintain a dictionary for every directory (in this case single instance) with
the entries in it.
The immediate problem in the change_path function is when this directory
is serialized with the dumps () function and then tried to assign to the
self.nodes_db, the db throws an exception.
line 679 of cvs2svn:
self.nodes_db[parent_key] = marshal.dumps(parent)
It means there is a limit on the field size of the db, and this string
But it means on the other hand, if the conversion succeeded, there is no use
of the generated svn repository with flat directory inside paths as file names.
It is not possible to check it out.
To make it working one should scan the cvs2svn.py code and exchange all '/' to os.sep.
The other way (change all separators to '/') is not perfect because on some operating system
the '/' can be a valid filename element.
> -----Original Message-----
> From: Michael Wood [mailto:email@example.com]
> Sent: csütörtök 2003. szeptember 11. 10:00
> To: Branko Cibej
> Cc: Max Bowsher; Faller, Gyula; firstname.lastname@example.org
> Subject: Re: cvs2svn change_path crash
> On Thu, Sep 11, 2003 at 09:48:23AM +0200, Branko Čibej wrote:
> > Michael Wood wrote:
> > >If he upgrades he will have to recompile the Subversion Python
> > >bindings against Python 2.3.
> > >
> > >
> > Not if he uses the 0.29.0 binaries.
> Ahhh. I didn't notice you'd upgraded your machine to Python 2.3 :)
> Michael Wood <email@example.com>
Received on Thu Sep 11 10:32:23 2003