You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by kf...@collab.net on 2003/07/28 16:48:32 UTC

Re: cvs2svn failure (traceback in pass 4)

Joey Hess <jo...@kitenet.net> writes:
> I get this backtrace when running cvs2svn on my debhelper cvs
> repository. The command line was:
>
> cvs2svn -s svnroot ~cvs/repository/joey-cvs/public/packages/debhelper
>
> After a while, it crashes:

Does it still crash with the latest cvs2svn.py, which was last changed
in revision 6567 (i.e., after the SVN 0.26 release)?

This sounds very similar to some issues already filed, for example,

   http://subversion.tigris.org/issues/show_bug.cgi?id=1411
   http://subversion.tigris.org/issues/show_bug.cgi?id=1427

...plus some private reproduction recipes I have in my mailbox.

The difference is that your error comes during the 'Finishing tags'
stage, not during the regular commits stage, so it may be subtly
different from those other issues.

How big is your repro data?  If it's small, can you make it public?
Just attach it to issue #1427 (just refer to an archive URL of this
mailing list thread as an explanation of the attachment --
http://www.contactor.de/~dast/svnusers has an archive).  That can help
us a lot.

Thanks for the report!

-Karl

> finishing 'debian_version_4_1_32' as branch
> finishing 'potato' as branch
> finishing 'debian_version_4_0_10' as branch
> finishing 'upstream_version_1_1_20' as branch
> finishing 'upstream_version_0_77' as branch
> finishing 'upstream_version_0_74' as branch
> finishing 'upstream_version_1_1_23' as branch
> finishing 'upstream_version_0_72' as branch
> finishing 'upstream_version_0_73' as branch
> finishing 'upstream_version_0_70' as branch
> finishing 'upstream_version_0_71' as branch
> finishing 'upstream_version_0_78' as branch
> finishing 'upstream_version_0_79' as branch
> Finishing tags:
> finishing 'upstream_version_1_0' as tag
> finishing 'debian_version_2_0_57' as tag
> finishing 'upstream_version_1_2_8' as tag
> finishing 'debian_version_4_1_35' as tag
> finishing 'upstream_version_0_92' as tag
> Traceback (most recent call last):
>   File "/usr/bin/cvs2svn", line 2236, in ?
>     main()
>   File "/usr/bin/cvs2svn", line 2232, in main
>     convert(ctx, start_pass=start_pass)
>   File "/usr/bin/cvs2svn", line 2111, in convert
>     _passes[i](ctx)
>   File "/usr/bin/cvs2svn", line 2075, in pass4
>     sym_tracker.finish(dumper, ctx)
>   File "/usr/bin/cvs2svn", line 1697, in finish
>     self.fill_tag(dumper, ctx, name, [1])
>   File "/usr/bin/cvs2svn", line 1644, in fill_tag
>     self.fill_name(dumper, ctx, tag, 1, jit_new_rev)
>   File "/usr/bin/cvs2svn", line 1631, in fill_name
>     is_tag, jit_new_rev)
>   File "/usr/bin/cvs2svn", line 1535, in copy_descend
>     next_src, next_dst, is_tag, jit_new_rev)
>   File "/usr/bin/cvs2svn", line 1510, in copy_descend
>     dumper.copy_path(src_path, parent_rev, copy_dst, val)
>   File "/usr/bin/cvs2svn", line 960, in copy_path
>     entries)
>   File "/usr/bin/cvs2svn", line 661, in change_path
>     for ent in new_val.keys():
> AttributeError: 'NoneType' object has no attribute 'keys'
> 
> I'm using the debian package of subversion 0.26 and python 2.2.3.
> I can make this repository available as a tarball if that would help.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by kf...@collab.net.
Joey Hess <jo...@kitenet.net> writes:
> That fixed it. Yay!
> 
> > How big is your repro data?  If it's small, can you make it public?
> > Just attach it to issue #1427 (just refer to an archive URL of this
> > mailing list thread as an explanation of the attachment --
> > http://www.contactor.de/~dast/svnusers has an archive).  That can help
> > us a lot.
> 
> Probably useless now, but the 600k tarball is already here:
> http://kitenet.net/~joey/tmp/debhelper-cvs.tgz

Great!

Mike and I are already running a conversion on it anyway, so we'll let
it finish.

> BTW, that explodes into a 193 mb subversion repository. Wow. I may need
> to rethink my disk space calculations for converting my whole cvs
> repository (1 gb).

Remember, you can trim that down by removing unused Berkeley log
files:

   http://subversion.tigris.org/project_faq.html#bdblogs

-Karl


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by Joey Hess <jo...@kitenet.net>.
kfogel@collab.net wrote:
> When you measure repository size, is that with or without BDB
> logfiles?  (I.e., what are you measuring exactly?)

My latter measurement was of the entire repository, not only the db
directory, and included any logfiles that svnadmin archive did not list.

-- 
see shy jo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by Philip Martin <ph...@codematters.co.uk>.
kfogel@collab.net writes:

> The empty revs are a problem we can fix.

I don't think there is a problem to fix, I only used --drop-empty-revs
as I was filtering out the tags.

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by kf...@collab.net.
Philip Martin <ph...@codematters.co.uk> writes:
> When I convert that tarball using cvs2svn HEAD I get a repository that
> is only 20mb not 33mb, although that is still larger than the 3.5mb
> CVS repository.  The created repository has a HEAD revision of 1087.
> 
> If I load the dump through
> 
>   svndumpfilter exclude tags --drop-empty-revs --renumber-revs
> 
> I get a repository without the tags.  HEAD is now revision 602 and the
> repository is just 8.8mb.  So the 485 tags are responsible for well
> over 50% of the repository size.
> 
> Picking a tag, version_4_1_52 say, and looking at the dump I see that
> it is not simply a copy of one of the previous revisions, it's a copy
> of 'trunk' rev 598 but with 't' replaced by 'branches/source-dist/t'
> rev 228 and with a number of the files in the 'autoscripts' directory
> deleted.  This seems to be typical of the tags in the dump.  The fact
> that the Subversion "tags" are not simply "cheap copies" of existing
> revisions may explain why they require so much space.
> 
> Take all this with a pinch of salt--I'm not an Subversion filesystem
> expert, I don't know much about CVS, and I only looked at this because
> I had never run cvs2svn before and I wanted to see what it did :)

The empty revs are a problem we can fix.

The non-cheap tags are because there's no single revision from which
it was possible to copy the tag (if there were, cvs2svn would have
found it, unless there's some bug in the algorithm).

When you measure repository size, is that with or without BDB
logfiles?  (I.e., what are you measuring exactly?)

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by kf...@collab.net.
I wrote:
> When you measure repository size, is that with or without BDB
> logfiles?  (I.e., what are you measuring exactly?)

Oh, excuse me, Philip -- I didn't read the sender name carefully, so
didn't realize it was you.  You probably already knew not to count the
BDB logfiles in your repository size measurement, I didn't need to ask
that particular FAQ :-).

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by Philip Martin <ph...@codematters.co.uk>.
Joey Hess <jo...@kitenet.net> writes:

> Joey Hess wrote:
>> Probably useless now, but the 600k tarball is already here:
>> http://kitenet.net/~joey/tmp/debhelper-cvs.tgz
>> 
>> BTW, that explodes into a 193 mb subversion repository. Wow. I may need
>> to rethink my disk space calculations for converting my whole cvs
>> repository (1 gb).
>
> Of course the svn repository does trim down to only 33 mb with svnadmin
> archive. That's more in line with the 8 to 10x size increase from cvs to
> svn that I've been seeing. 

When I convert that tarball using cvs2svn HEAD I get a repository that
is only 20mb not 33mb, although that is still larger than the 3.5mb
CVS repository.  The created repository has a HEAD revision of 1087.

If I load the dump through

  svndumpfilter exclude tags --drop-empty-revs --renumber-revs

I get a repository without the tags.  HEAD is now revision 602 and the
repository is just 8.8mb.  So the 485 tags are responsible for well
over 50% of the repository size.

Picking a tag, version_4_1_52 say, and looking at the dump I see that
it is not simply a copy of one of the previous revisions, it's a copy
of 'trunk' rev 598 but with 't' replaced by 'branches/source-dist/t'
rev 228 and with a number of the files in the 'autoscripts' directory
deleted.  This seems to be typical of the tags in the dump.  The fact
that the Subversion "tags" are not simply "cheap copies" of existing
revisions may explain why they require so much space.

Take all this with a pinch of salt--I'm not an Subversion filesystem
expert, I don't know much about CVS, and I only looked at this because
I had never run cvs2svn before and I wanted to see what it did :)

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by Joey Hess <jo...@kitenet.net>.
Joey Hess wrote:
> Probably useless now, but the 600k tarball is already here:
> http://kitenet.net/~joey/tmp/debhelper-cvs.tgz
> 
> BTW, that explodes into a 193 mb subversion repository. Wow. I may need
> to rethink my disk space calculations for converting my whole cvs
> repository (1 gb).

Of course the svn repository does trim down to only 33 mb with svnadmin
archive. That's more in line with the 8 to 10x size increase from cvs to
svn that I've been seeing. 

-- 
see shy jo

Re: cvs2svn failure (traceback in pass 4)

Posted by Joey Hess <jo...@kitenet.net>.
kfogel@collab.net wrote:
> Does it still crash with the latest cvs2svn.py, which was last changed
> in revision 6567 (i.e., after the SVN 0.26 release)?

That fixed it. Yay!

> How big is your repro data?  If it's small, can you make it public?
> Just attach it to issue #1427 (just refer to an archive URL of this
> mailing list thread as an explanation of the attachment --
> http://www.contactor.de/~dast/svnusers has an archive).  That can help
> us a lot.

Probably useless now, but the 600k tarball is already here:
http://kitenet.net/~joey/tmp/debhelper-cvs.tgz

BTW, that explodes into a 193 mb subversion repository. Wow. I may need
to rethink my disk space calculations for converting my whole cvs
repository (1 gb).

-- 
see shy jo

Re: cvs2svn failure (traceback in pass 4)

Posted by kf...@collab.net.
Scott Moynes <sm...@nerdnest.org> writes:
> I used to get a traceback identical to this one, but after upgrading
> to 6572, I get a traceaback as in issue #1440.
> 
> I can try to trim down the repository if it is necessary, but I am a
> little unsure how to trim it to a single tag.

Maybe try various trims until the bug stops happening, then undo the
last trim and send us that repository :-).

(Small repro cases help tremendously in tracking these things down.)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: cvs2svn failure (traceback in pass 4)

Posted by Scott Moynes <sm...@nerdnest.org>.
* kfogel@collab.net (kfogel@collab.net) wrote:
> Does it still crash with the latest cvs2svn.py, which was last changed
> in revision 6567 (i.e., after the SVN 0.26 release)?
> 
> This sounds very similar to some issues already filed, for example,

I used to get a traceback identical to this one, but after upgrading
to 6572, I get a traceaback as in issue #1440.

I can try to trim down the repository if it is necessary, but I am a
little unsure how to trim it to a single tag.

-- 
Scott Moynes http://www.icculus.org/openbox/
"Computer science is as much about computers
as astronomy is about telescopes." -- Dijkstra

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org