On Sat, 14 May 2011 22:46 +0300, "Daniel Shahaf" <danie...@apache.org> wrote:
> You probably don't need to know anything at all about svndiff --- if previous 
> instances of the bug are representative, then you're free to treat consider 
> the svndiff stream an opaque binary data.
> 
> That is, previously what happened is that fsfs wrote
> 
> A_1 A_2 B_1 B_2 C_1 C_1 C_2 D_1 D_2 E_1 E_2
> 

instead of the correct

A_1 A_2 B_1 B_2 C_1 C_2 D_1 D_2 E_1 E_2

where again A_i,B_i don't stand for anything in particular other than "portions 
of the rev file that should be written in sequence".


Daniel
(since when does shift+enter send in the webmail?)

> On Sat, 14 May 2011 21:24 +0200, "Steinar Bang" <s...@dod.no> wrote:
> > >>>>> Steinar Bang <s...@dod.no>:
> > 
> > >>>>> Steinar Bang <s...@dod.no>:
> > >>>>> Stefan Sperling <s...@elego.de>:
> > 
> > >>> Try to locate boundaries of representations, which look as follows:
> > 
> > >>> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure
> > >>> A representation begins with a line containing either "PLAIN\n" or
> > >>> "DELTA\n" or "DELTA <rev> <offset> <length>\n", where <rev>, <offset>,
> > >>> and <length> give the location of the delta base of the representation
> > >>> and the amount of data it contains (not counting the header or
> > >>> trailer).  If no base location is given for a delta, the base is the
> > >>> empty stream.  After the initial line comes raw svndiff data, followed
> > >>> by a cosmetic trailer "ENDREP\n".
> > 
> > >> `M-j 1916 RET', takes me here:
> > >> 00000770: 4e44 5245 500a 4445 4c54 410a 5356 4e01  NDREP.DELTA.SVN.
> > >> 00000780: 0000 8c0c 823d 8431 823b 8140 4c00 8844  .....=.1.;.@L..D
> > >> 00000790: 4ca8 404e 0048 8100 bf45 820d 9945 820d  L.@N.H...E...E..
> > >> ...
> > 
> > > So... trying to interpret this with the description that Stefan gave,
> > > and that Daniel referred to.  Here we have "DELTA\n" (the "0A" is "\n"),
> > > which begins a representation according to the above description.
> > 
> > > But this is where I get a bit lost.
> > 
> > Just analyzing a little bit further from the /subversion/notes/svndiff
> > description that Daniel mentioned.
> > 
> > The first part after "DELTA\n" is "SVN" followed by a one byte format
> > version number, in this case 0x01.
> > 
> > And then comes the hard part:
> >  After the header come one or more windows, until the document ends.
> >  (So the decoder must have external context indicating when there is no
> >  more svndiff data.)
> > 
> > Then comes the description of a window, and that is, as Daniel said,
> > probably not human readable, or even recognizable in a hex editor,
> > because the window may be zlib compressed (or so I understand it).
> > 
> > Hm... hard this is.  The dark side strong in this one.
> > 
> > 
> 

Reply via email to