avoid fetching full text to apply svn deltas

Bug #305347 reported by Jelmer Vernooij
2
Affects Status Importance Assigned to Milestone
Bazaar
Confirmed
Wishlist
Unassigned
Bazaar Subversion Plugin
Triaged
Wishlist
Unassigned

Bug Description

<lifeless> jelmer: what deltas does svn use?
<lifeless> ideally you can provide an adaptor to allow you to use insert_record_stream
<jelmer> it's byte-based
<lifeless> ok
<lifeless> so add_lines does get_lines(), applies delta, does a diff(), writes the text out
<jelmer> basically it's a list of instructions like "insert this sequence of bytes at offset X"
<lifeless> so we're doing twice as many get_lines() as needed
<jelmer> ah, cool
<lifeless> this will be nontrivial for you
<lifeless> but look at insert_record_stream
<lifeless> conceptually, you would define a new record type ('svn-delta')
<lifeless> and then look at KnitVersionedFile.insert_record_stream to teach it how to coerce that to a more useful form
<lifeless> the key thing is that in that function you can e.g. emit a knit record directly (because you may know what lines were altered, or something similar)
<jelmer> hmmok
<lifeless> some assembly will be required, but the goal of the interface is to permit this - as the first external user, you'll have to poke things to line up more

Jelmer Vernooij (jelmer)
Changed in bzr-svn:
assignee: nobody → jelmer
importance: Undecided → Wishlist
status: New → Triaged
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
milestone: none → 0.5.1
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
milestone: 0.5.1 → 0.6.0
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
milestone: 0.6.0 → none
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
milestone: none → 1.1.0
Jelmer Vernooij (jelmer)
Changed in bzr:
status: New → Confirmed
importance: Undecided → Wishlist
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
assignee: Jelmer Vernooij (jelmer) → nobody
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
milestone: 1.1.0 → 1.1.1
Jelmer Vernooij (jelmer)
tags: added: check-for-breezy
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.