use replay rather than do_update

Bug #355143 reported by Jelmer Vernooij
4
Affects Status Importance Assigned to Milestone
Bazaar Subversion Plugin
Triaged
Wishlist
Unassigned

Bug Description

it would be nice if bzr-svn could use svn.ra.replay() rather than svn.ra.do_update(), as it will be faster

Jelmer Vernooij (jelmer)
Changed in bzr-svn:
assignee: nobody → Jelmer Vernooij (jelmer)
importance: Undecided → Wishlist
status: New → Triaged
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
milestone: none → 1.1.0
Revision history for this message
Samuel Bronson (naesten) wrote :

Any chance you could give any pointers on
  a) how the current code works
  b) how this would need to work?

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

We do an update request for each revision at the moment specifying that we have the parent revision completely to the reporter. The alternative would be to use replay for each revision, but that means we need to be able to access any old revisions contents, and that's not always the case. E.g. something that had the same name could be in a different branch.

You can try out the replay functionality by removing " and False" from line 1074 in fetch.py.

Revision history for this message
Samuel Bronson (naesten) wrote :

Actually, commenting out that " and False" and the one on the previous line doesn't seem to cause any test failures right now ...

... on the other hand, I have yet to see it alter the SVN requests made across the net :-(

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Are you sure? I get plenty of test failures with that commented out:

/usr/bin/python ./setup.py build_ext --inplace
running build_ext
BZR_PLUGIN_PATH=/home/jelmer/bzr-svn/0.6/.plugins: /usr/bin/python /usr/bin/bzr selftest --starting-with=bzrlib.plugins.svn
testing: /usr/bin/bzrg
   /usr/lib/python2.5/site-packages/bzrlib (1.17 python2.5.4)

ERROR: bzrlib.plugins.svn.tests.test_branch.WorkingSubversionBranch.test_fetch_branch
    ("Invalid revision number '-1'", 160006)

ERROR: bzrlib.plugins.svn.tests.test_branch.WorkingSubversionBranch.test_fetch_dir_upgrade
    An inconsistent delta was supplied involving 'bla', '2@9d440acb-58e9-4928-80c6-6768b86833c7:branches%2Fabranch%2Fbla'
reason: Path already versioned

ERROR: bzrlib.plugins.svn.tests.test_branch.WorkingSubversionBranch.test_fetch_odd
    An inconsistent delta was supplied involving 'hosts', '5@06ffe7b4-8f88-473c-9a9b-3132f52b928e:branches%2Ffoobranch%2Fhosts'
reason: Path already versioned

ERROR: bzrlib.plugins.svn.tests.test_branch.WorkingSubversionBranch.test_fetch_replace
    An inconsistent delta was supplied involving 'hosts', '5@6f95bc5c-e18d-4021-aca8-49ed51dbcb75:branches%2Ffoobranch%2Fhosts'
reason: Path already versioned

ERROR: bzrlib.plugins.svn.tests.test_branch.WorkingSubversionBranch.test_ghost_workingtree
    ("Invalid revision number '-1'", 160006)

^Cbzr: interrupted

Revision history for this message
Samuel Bronson (naesten) wrote :

Hmm. Doh! I got mixed up between commenting in and commenting out!

Whoops!

... at least now I have something to debug ;-).

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

You might want to also have a look at lp:~jelmer/bzr-svn/replay, which contains my initial work on this.

Jelmer Vernooij (jelmer)
Changed in bzr-svn:
milestone: 1.1.0 → 1.1.1
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
assignee: Jelmer Vernooij (jelmer) → nobody
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.