ERROR: An inconsistent delta was supplied

Bug #217030 reported by Daniel Kończyk
4
Affects Status Importance Assigned to Milestone
svn2bzr
New
Undecided
Unassigned

Bug Description

I'm trying to move my old svn repo to bzr and there are some errors.
Hopefully it can be easily fixed, so I have to staty with svn for this project for a while..
Anyway, I wanted this to be a single branch, but it always creates this 'trunk' schema linke below..
The debug info right before the error occurs:

debug: Adding dir: /home/daniel/sites/xxx/tags/0.0.4/tpl
debug: Adding file: /home/daniel/sites/xxx/tags/0.0.4/tpl/fi.tpl
debug: Adding file: /home/daniel/sites/xxx/tags/0.0.4/tpl/head.tpl
debug: Adding file: /home/daniel/sites/xxx/tags/0.0.4/tpl/home.tpl
debug: Adding file: /home/daniel/sites/xxx/tags/0.0.4/tpl/index.tpl
debug: Adding file: /home/daniel/sites/xxx/tags/0.0.4/tpl/main.tpl
Committing revision 36
Nothing changed in revision 37
debug: Removing dir: /home/daniel/sites/xxx/tags/0.0.4
Committing revision 38
Traceback (most recent call last):
  File "./svn2bzr.py", line 1084, in <module>
    main()
  File "./svn2bzr.py", line 1077, in main
    opts.prefix, opts.filter)
  File "./svn2bzr.py", line 1008, in svn2bzr
    creator.run()
  File "./svn2bzr.py", line 431, in run
    commit()
  File "./svn2bzr.py", line 422, in commit
    timestamp=timestamp)
  File "./svn2bzr.py", line 396, in commit
    timestamp=timestamp, verbose=False)
  File "<string>", line 4, in commit_write_locked
  File "/usr/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 246, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File "<string>", line 4, in commit_write_locked
  File "/usr/lib/python2.5/site-packages/bzrlib/mutabletree.py", line 187, in commit
    revprops=revprops, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/commit.py", line 401, in commit
    self._basis_delta)
  File "/usr/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 1244, in update_basis_by_delta
    self.current_dirstate().update_basis_by_delta(delta, new_revid)
  File "/usr/lib/python2.5/site-packages/bzrlib/dirstate.py", line 1333, in update_basis_by_delta
    self._update_basis_apply_deletes(deletes)
  File "/usr/lib/python2.5/site-packages/bzrlib/dirstate.py", line 1436, in _update_basis_apply_deletes
    'This was marked as a real delete, but the WT state'
bzrlib.errors.InconsistentDelta: An inconsistent delta was supplied involving 'tags/0.0.4/tpl/main.tpl', 'svn2bzr-dbf1c6f7db726863ef926c1616288e89b11e013d'
reason: This was marked as a real delete, but the WT state claims that it still exists and is versioned.

-------------------------------------------------------------------------------
And the part from dump file, which probably causes this error:

Revision-number: 38
Prop-content-length: 123
Content-length: 123

K 7
svn:log
V 19
Usuwam wersje 0.0.4
K 10
svn:author
V 9
drmartens
K 8
svn:date
V 27
2005-08-04T01:12:06.824038Z
PROPS-END

Node-path: tags/0.0.4
Node-action: delete

Revision history for this message
Lionel Porcheron (lionel.porcheron) wrote :

I had the same error (for information, the error occurs on a directory renaming commit for me).
That beeing said, it works with bzr-svn (using the command line "bzr svn-import my_dump").

Revision history for this message
Daniel Kończyk (drmartens) wrote :

Thanks for the info Lionel. I don't have that plugin installed, but I will check it out if it worked for you.

Revision history for this message
Daniel Kończyk (drmartens) wrote :

OK, I played a bit with my dump file and the conclusion is, that in my case the error occurs on directory delete commit (directory becomes empty, but neverthless, the error occurs). I managed to edit my dump file and remove all directory delete entries (there were only 10-20 of them in 850 revisions) and conversion worked - all those entries triggered the very same error I described earlier, so I think that's the issue here.

BUT, for 24MB repository it took over 45 minutes to convert my svn repo (branches, tags, trunk)! 1GB ram, 2xcore2duo ~2GHz, CPU temperature jumped from ~45C to ~72C, GPU from 50C to 67C, python is eating 50% of CPU and ~50MiB of RAM. Very slow process... and definitely "the hottest" so far. It's taking like 8 seconds to convert one revision in the end. But that's probably also Hardy issue (I've just upgraded and the laptop is much hotter in comparison to gutsy).

Hope some dev jump onto that problem :)

Revision history for this message
Geoffrey Irving (irving-naml) wrote :

I'm getting this error as well, and have attached a stripped down dump file that exhibits the problem.
I'll look at it some more later (unless someone else fixes it first).

Geoffrey

-------------------------- OUTPUT ---------------------

dual% rm -rf small.svn small && svnadmin create small.svn && svnadmin load small.svn < small.dump && svn2bzr.py small.dump small
<<< Started new transaction, based on original revision 475
     * adding path : trunk ... done.
     * adding path : trunk/mold ... done.
     * adding path : trunk/mold/Mold ... done.
     * adding path : branches ... done.
     * adding path : branches/mold ... done.
     * adding path : branches/mold/mold ... done.
     * adding path : branches/mold/mold/Mold ... done.
     * adding path : branches/mold/mold/mold ... done.

------- Committed new rev 1 (loaded from original rev 475) >>>

<<< Started new transaction, based on original revision 476
     * deleting path : branches/mold ... done.

------- Committed new rev 2 (loaded from original rev 476) >>>

Revision 475 read
Committing revision 475
Committing revision 476
Traceback (most recent call last):
  File "svn2bzr-1/svn2bzr.py", line 1083, in <module>
    main()
  File "svn2bzr-1/svn2bzr.py", line 1076, in main
    opts.prefix, opts.filter)
  File "svn2bzr-1/svn2bzr.py", line 1005, in svn2bzr
    creator.run()
  File "svn2bzr-1/svn2bzr.py", line 485, in run
    commit()
  File "svn2bzr-1/svn2bzr.py", line 410, in commit
    timestamp=timestamp)
  File "svn2bzr-1/svn2bzr.py", line 386, in commit
    verbose=False)
  File "<string>", line 4, in commit_write_locked
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 246, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File "<string>", line 4, in commit_write_locked
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/mutabletree.py", line 187, in commit
    revprops=revprops, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/commit.py", line 401, in commit
    self._basis_delta)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 1244, in update_basis_by_delta
    self.current_dirstate().update_basis_by_delta(delta, new_revid)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/dirstate.py", line 1333, in update_basis_by_delta
    self._update_basis_apply_deletes(deletes)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/dirstate.py", line 1436, in _update_basis_apply_deletes
    'This was marked as a real delete, but the WT state'
bzrlib.errors.InconsistentDelta: An inconsistent delta was supplied involving 'branches/mold/mold/mold', 'svn2bzr-fd60b4771f8a4ecfdde4dee5c9a6314c0fb12062'
reason: This was marked as a real delete, but the WT state claims that it still exists and is versioned.

Revision history for this message
Geoffrey Irving (irving-naml) wrote :

Though obvious, I should explicitly note that this is probably case-related due to the existence of both "mold" and "Mold". The problem goes away if "Mold" is removed.

Geoffrey

Revision history for this message
Geoffrey Irving (irving-naml) wrote :

Here's a minimal test case.

dual% rm -rf small.svn small && svnadmin create small.svn && svnadmin load small.svn < small.dump && svn2bzr-1/svn2bzr.py --log=debug small.dump small
<<< Started new transaction, based on original revision 475
     * adding path : a ... done.
     * adding path : a/B ... done.
     * adding path : a/b ... done.

------- Committed new rev 1 (loaded from original rev 475) >>>

<<< Started new transaction, based on original revision 476
     * deleting path : a ... done.

------- Committed new rev 2 (loaded from original rev 476) >>>

Revision 475 read
debug: Tree has 3 entries
debug: Adding dir: /data/hackery/small/a
debug: Adding file: /data/hackery/small/a/B
debug: Adding file: /data/hackery/small/a/b
Committing revision 475
debug: Removing path: /data/hackery/small/a
Committing revision 476
Traceback (most recent call last):
  File "svn2bzr-1/svn2bzr.py", line 1082, in <module>
    main()
  File "svn2bzr-1/svn2bzr.py", line 1075, in main
    opts.prefix, opts.filter)
  File "svn2bzr-1/svn2bzr.py", line 1004, in svn2bzr
    creator.run()
  File "svn2bzr-1/svn2bzr.py", line 484, in run
    commit()
  File "svn2bzr-1/svn2bzr.py", line 409, in commit
    timestamp=timestamp)
  File "svn2bzr-1/svn2bzr.py", line 385, in commit
    verbose=False)
  File "<string>", line 4, in commit_write_locked
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 246, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File "<string>", line 4, in commit_write_locked
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/mutabletree.py", line 187, in commit
    revprops=revprops, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/commit.py", line 401, in commit
    self._basis_delta)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 1244, in update_basis_by_delta
    self.current_dirstate().update_basis_by_delta(delta, new_revid)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/dirstate.py", line 1333, in update_basis_by_delta
    self._update_basis_apply_deletes(deletes)
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bzrlib/dirstate.py", line 1436, in _update_basis_apply_deletes
    'This was marked as a real delete, but the WT state'
bzrlib.errors.InconsistentDelta: An inconsistent delta was supplied involving 'a/b', 'svn2bzr-8f6233a5e18f9a3b5235ab8dba570a7956cea291'
reason: This was marked as a real delete, but the WT state claims that it still exists and is versioned.

Revision history for this message
Geoffrey Irving (irving-naml) wrote :

Oops. I just remembered that I am, in fact, working on a case insensitive filesystem (mac os x).
Sorry maybe there's no hope of this working. I'll convert my repository on a linux machine.

Geoffrey

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.