You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Jack Moffitt <ja...@xiph.org> on 2003/07/15 00:24:29 UTC

cvs2svn.py : problems with xiph.org repository conversion

Hello everyone,

We're trying to move Xiph.org repositories from CVS to Subversion.  The
gating item for us is preserving branch history, and since the code
seems to be in a mostly working state, I thought I would give it a try
today.

The first failure I ran into is upon importing a branch in the 'ao'
module.  I've uploaded a subset of the repository that reproduces this
problem to http://i.cantcode.com/~jack/xiphrepo-test.tar.gz .  On my
system it only takes a few seconds to trigger the problem.  Here's a
traceback:

committing: Sat Jul 21 21:35:40 2001, over 13 seconds
    adding or changing 1.21.2.1 : branches/volsung_20010721/ao/configure.in
Traceback (most recent call last):
  File "./cvs2svn/cvs2svn.py", line 2190, in ?
    main()
  File "./cvs2svn/cvs2svn.py", line 2186, in main
    convert(ctx, start_pass=start_pass)
  File "./cvs2svn/cvs2svn.py", line 2075, in convert
    _passes[i](ctx)
  File "./cvs2svn/cvs2svn.py", line 2018, in pass4
    c.commit(dumper, ctx, sym_tracker)
  File "./cvs2svn/cvs2svn.py", line 1777, in commit
    sym_tracker.fill_branch(dumper, ctx, br)
  File "./cvs2svn/cvs2svn.py", line 1621, in fill_branch
    self.fill_name(dumper, ctx, branch, None, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1586, in fill_name
    is_tag, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
    next_src, next_dst, is_tag, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
    next_src, next_dst, is_tag, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
    next_src, next_dst, is_tag, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1481, in copy_descend
    dumper.copy_path(src_path, parent_rev, copy_dst, val)
  File "./cvs2svn/cvs2svn.py", line 932, in copy_path
    entries)
  File "./cvs2svn/cvs2svn.py", line 632, in change_path
    for ent in new_val.keys():
AttributeError: 'NoneType' object has no attribute 'keys'



In order to keep testing, I removed the 'ao' module from the repository
snapshot, and reran cvs2svn.  This time it ran beautifully all the way
to the end, at which time it started the 'finishing' tasks.  While
"finishing 'start' as tag" it again failed with a very similar
traceback:

finishing 'start' as tag
Traceback (most recent call last):
  File "./cvs2svn/cvs2svn.py", line 2190, in ?
    main()
  File "./cvs2svn/cvs2svn.py", line 2186, in main
    convert(ctx, start_pass=start_pass)
  File "./cvs2svn/cvs2svn.py", line 2075, in convert
    _passes[i](ctx)
  File "./cvs2svn/cvs2svn.py", line 2039, in pass4
    sym_tracker.finish(dumper, ctx)
  File "./cvs2svn/cvs2svn.py", line 1661, in finish
    self.fill_tag(dumper, ctx, name, [1])
  File "./cvs2svn/cvs2svn.py", line 1608, in fill_tag
    self.fill_name(dumper, ctx, tag, 1, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1595, in fill_name
    is_tag, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
    next_src, next_dst, is_tag, jit_new_rev)
  File "./cvs2svn/cvs2svn.py", line 1481, in copy_descend
    dumper.copy_path(src_path, parent_rev, copy_dst, val)
  File "./cvs2svn/cvs2svn.py", line 932, in copy_path
    entries)
  File "./cvs2svn/cvs2svn.py", line 632, in change_path
    for ent in new_val.keys():
AttributeError: 'NoneType' object has no attribute 'keys'


I don't currently have a trimmed down repository that reproduces this
exception, but if you'd like, I'm happy to provide a complete copy of
the Xiph.org cvs repository.

Thanks much for the work on cvs2svn.py.  We're looking forward to
ditching CVS finally.

Regards,
jack.

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

Re: cvs2svn.py : problems with xiph.org repository conversion

Posted by kf...@collab.net.
Florian Schulze <fl...@gmx.net> writes:
> I'm getting very similar tracebacks for my repository. I could also
> try to trim down to the problematic portion.

Well, don't spend the time yet, let me first fix Jack's bug, and then
you try to reproduce after the fix.  If you still can, then yes, we'll
want your data too :-).

Thanks,
-Karl

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

Re: cvs2svn.py : problems with xiph.org repository conversion

Posted by Jack Moffitt <ja...@xiph.org>.
> The bug Jack reported is fixed now.  But see
> 
>    http://subversion.tigris.org/issues/show_bug.cgi?id=1421
> 
> ...for a separate bug that will probably cause at least Jack a problem
> until it's resolved.

The second part of the report is still there, namely an exception on the
same line from finishing up tags (a few others have reported a similar
thing as well).

I tried for several hours to get a small subset of the repository as a
testcase, but unfortunately, either I'm too tired or the bug is somewhat
non-deterministic.  It would fail, I'd delete a module, it would work.
So I'd put that module back, and it would work all of a sudden.  

In any case, I've just tarred up the entire repository for you.  You'll
find it at http://xiph.org/~jack/xiphrepo.tar.bz2 .  It's about 20MB
compressed, and about 170MB uncompressed.

Same commandlines from before...  cvs2svn.py -v --dump-only xiphrepo

Thanks for the other bugfix... we're nearly there!

jack.

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

Re: cvs2svn.py : problems with xiph.org repository conversion

Posted by kf...@collab.net.
Florian Schulze <fl...@gmx.net> writes:
> I'm getting very similar tracebacks for my repository. I could also
> try to trim down to the problematic portion.

The bug Jack reported is fixed now.  But see

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

...for a separate bug that will probably cause at least Jack a problem
until it's resolved.

-Karl

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

Re: cvs2svn.py : problems with xiph.org repository conversion

Posted by Florian Schulze <fl...@gmx.net>.
I'm getting very similar tracebacks for my repository. I could also try to 
trim down to the problematic portion.

Regards,
Florian

On Mon, 14 Jul 2003 18:24:29 -0600, Jack Moffitt <ja...@xiph.org> wrote:

> Hello everyone,
>
> We're trying to move Xiph.org repositories from CVS to Subversion.  The
> gating item for us is preserving branch history, and since the code
> seems to be in a mostly working state, I thought I would give it a try
> today.
>
> The first failure I ran into is upon importing a branch in the 'ao'
> module.  I've uploaded a subset of the repository that reproduces this
> problem to http://i.cantcode.com/~jack/xiphrepo-test.tar.gz .  On my
> system it only takes a few seconds to trigger the problem.  Here's a
> traceback:
>
> committing: Sat Jul 21 21:35:40 2001, over 13 seconds
> adding or changing 1.21.2.1 : branches/volsung_20010721/ao/configure.in
> Traceback (most recent call last):
> File "./cvs2svn/cvs2svn.py", line 2190, in ?
> main()
> File "./cvs2svn/cvs2svn.py", line 2186, in main
> convert(ctx, start_pass=start_pass)
> File "./cvs2svn/cvs2svn.py", line 2075, in convert
> _passes[i](ctx)
> File "./cvs2svn/cvs2svn.py", line 2018, in pass4
> c.commit(dumper, ctx, sym_tracker)
> File "./cvs2svn/cvs2svn.py", line 1777, in commit
> sym_tracker.fill_branch(dumper, ctx, br)
> File "./cvs2svn/cvs2svn.py", line 1621, in fill_branch
> self.fill_name(dumper, ctx, branch, None, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1586, in fill_name
> is_tag, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
> next_src, next_dst, is_tag, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
> next_src, next_dst, is_tag, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
> next_src, next_dst, is_tag, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1481, in copy_descend
> dumper.copy_path(src_path, parent_rev, copy_dst, val)
> File "./cvs2svn/cvs2svn.py", line 932, in copy_path
> entries)
> File "./cvs2svn/cvs2svn.py", line 632, in change_path
> for ent in new_val.keys():
> AttributeError: 'NoneType' object has no attribute 'keys'
>
>
>
> In order to keep testing, I removed the 'ao' module from the repository
> snapshot, and reran cvs2svn.  This time it ran beautifully all the way
> to the end, at which time it started the 'finishing' tasks.  While
> "finishing 'start' as tag" it again failed with a very similar
> traceback:
>
> finishing 'start' as tag
> Traceback (most recent call last):
> File "./cvs2svn/cvs2svn.py", line 2190, in ?
> main()
> File "./cvs2svn/cvs2svn.py", line 2186, in main
> convert(ctx, start_pass=start_pass)
> File "./cvs2svn/cvs2svn.py", line 2075, in convert
> _passes[i](ctx)
> File "./cvs2svn/cvs2svn.py", line 2039, in pass4
> sym_tracker.finish(dumper, ctx)
> File "./cvs2svn/cvs2svn.py", line 1661, in finish
> self.fill_tag(dumper, ctx, name, [1])
> File "./cvs2svn/cvs2svn.py", line 1608, in fill_tag
> self.fill_name(dumper, ctx, tag, 1, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1595, in fill_name
> is_tag, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
> next_src, next_dst, is_tag, jit_new_rev)
> File "./cvs2svn/cvs2svn.py", line 1481, in copy_descend
> dumper.copy_path(src_path, parent_rev, copy_dst, val)
> File "./cvs2svn/cvs2svn.py", line 932, in copy_path
> entries)
> File "./cvs2svn/cvs2svn.py", line 632, in change_path
> for ent in new_val.keys():
> AttributeError: 'NoneType' object has no attribute 'keys'
>
>
> I don't currently have a trimmed down repository that reproduces this
> exception, but if you'd like, I'm happy to provide a complete copy of
> the Xiph.org cvs repository.
>
> Thanks much for the work on cvs2svn.py.  We're looking forward to
> ditching CVS finally.
>
> Regards,
> jack.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
>
>





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

Re: cvs2svn.py : problems with xiph.org repository conversion

Posted by Michael Wood <mw...@its.uct.ac.za>.
On Tue, Jul 15, 2003 at 11:54:49AM -0500, kfogel@collab.net wrote:
[snip]
> By the way, it's always best to include the exact cvs2svn.py command
> line you used to reproduce with this data.
> 
> (For some reason, there's a weird epidemic in cvs2svn bug reports,
> such that people always puts the traceback in the initial report, but
> never the command line they used.  I don't know why this is :-), it
> just seems to be the pattern.)
[snip]

Maybe you should apply the following nasty patch then ;)

Index: cvs2svn.py
===================================================================
--- cvs2svn.py  (revision 6484)
+++ cvs2svn.py  (working copy)
@@ -2228,4 +2228,9 @@
 
 
 if __name__ == '__main__':
-  main()
+  try:
+    main()
+  except:
+    print "*** Include this in your bug report ***"
+    print "Args:", sys.argv
+    raise

-- 
Michael Wood <mw...@its.uct.ac.za>

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

Re: cvs2svn.py : problems with xiph.org repository conversion

Posted by kf...@collab.net.
Jack Moffitt <ja...@xiph.org> writes:
> We're trying to move Xiph.org repositories from CVS to Subversion.  The
> gating item for us is preserving branch history, and since the code
> seems to be in a mostly working state, I thought I would give it a try
> today.
> 
> The first failure I ran into is upon importing a branch in the 'ao'
> module.  I've uploaded a subset of the repository that reproduces this
> problem to http://i.cantcode.com/~jack/xiphrepo-test.tar.gz .  On my
> system it only takes a few seconds to trigger the problem.  Here's a
> traceback:

Thanks very much for the report!

This looks like it may be similar to a problem recently reported by
Mike Wilcox.  I'll add your reproduction data to that issue

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

...so watch there for further progress.

By the way, it's always best to include the exact cvs2svn.py command
line you used to reproduce with this data.

(For some reason, there's a weird epidemic in cvs2svn bug reports,
such that people always puts the traceback in the initial report, but
never the command line they used.  I don't know why this is :-), it
just seems to be the pattern.)

-Karl


> committing: Sat Jul 21 21:35:40 2001, over 13 seconds
>     adding or changing 1.21.2.1 : branches/volsung_20010721/ao/configure.in
> Traceback (most recent call last):
>   File "./cvs2svn/cvs2svn.py", line 2190, in ?
>     main()
>   File "./cvs2svn/cvs2svn.py", line 2186, in main
>     convert(ctx, start_pass=start_pass)
>   File "./cvs2svn/cvs2svn.py", line 2075, in convert
>     _passes[i](ctx)
>   File "./cvs2svn/cvs2svn.py", line 2018, in pass4
>     c.commit(dumper, ctx, sym_tracker)
>   File "./cvs2svn/cvs2svn.py", line 1777, in commit
>     sym_tracker.fill_branch(dumper, ctx, br)
>   File "./cvs2svn/cvs2svn.py", line 1621, in fill_branch
>     self.fill_name(dumper, ctx, branch, None, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1586, in fill_name
>     is_tag, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
>     next_src, next_dst, is_tag, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
>     next_src, next_dst, is_tag, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
>     next_src, next_dst, is_tag, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1481, in copy_descend
>     dumper.copy_path(src_path, parent_rev, copy_dst, val)
>   File "./cvs2svn/cvs2svn.py", line 932, in copy_path
>     entries)
>   File "./cvs2svn/cvs2svn.py", line 632, in change_path
>     for ent in new_val.keys():
> AttributeError: 'NoneType' object has no attribute 'keys'
> 
> 
> 
> In order to keep testing, I removed the 'ao' module from the repository
> snapshot, and reran cvs2svn.  This time it ran beautifully all the way
> to the end, at which time it started the 'finishing' tasks.  While
> "finishing 'start' as tag" it again failed with a very similar
> traceback:
> 
> finishing 'start' as tag
> Traceback (most recent call last):
>   File "./cvs2svn/cvs2svn.py", line 2190, in ?
>     main()
>   File "./cvs2svn/cvs2svn.py", line 2186, in main
>     convert(ctx, start_pass=start_pass)
>   File "./cvs2svn/cvs2svn.py", line 2075, in convert
>     _passes[i](ctx)
>   File "./cvs2svn/cvs2svn.py", line 2039, in pass4
>     sym_tracker.finish(dumper, ctx)
>   File "./cvs2svn/cvs2svn.py", line 1661, in finish
>     self.fill_tag(dumper, ctx, name, [1])
>   File "./cvs2svn/cvs2svn.py", line 1608, in fill_tag
>     self.fill_name(dumper, ctx, tag, 1, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1595, in fill_name
>     is_tag, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1506, in copy_descend
>     next_src, next_dst, is_tag, jit_new_rev)
>   File "./cvs2svn/cvs2svn.py", line 1481, in copy_descend
>     dumper.copy_path(src_path, parent_rev, copy_dst, val)
>   File "./cvs2svn/cvs2svn.py", line 932, in copy_path
>     entries)
>   File "./cvs2svn/cvs2svn.py", line 632, in change_path
>     for ent in new_val.keys():
> AttributeError: 'NoneType' object has no attribute 'keys'
> 
> 
> I don't currently have a trimmed down repository that reproduces this
> exception, but if you'd like, I'm happy to provide a complete copy of
> the Xiph.org cvs repository.
> 
> Thanks much for the work on cvs2svn.py.  We're looking forward to
> ditching CVS finally.
> 
> Regards,
> jack.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

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