Joe Orton wrote:
> On Sat, Aug 02, 2008 at 01:31:40PM +0200, Stefan Küng wrote:
>> An example (pseudo-checkout):
>> callback(200, -1) // for connecting
>> callback(300, -1) // for info packets
>> callback(512, 123000) // first file
>> callback(512, 123000) // first file
>> callback(512, 123000) // first file
>> ...
>> callback(30, 123000) // first file
>> callback(300, -1) // for info packets
>> callback(512, 234000) // second file
>> callback(512, 234000) // second file
>> callback(512, 234000) // second file
>> ...
>> callback(30, 234000) // second file
>
> The progress parameter has been a counter which increments for each
> block transferred in all version of neon except 0.27.0, which had a bug
> in the ne_set_progress() compat API which was fixed in 0.27.1 (and
> didn't exist in any earlier version). Are you using 0.27.0 here?
I'm using the latest neon (0.28.2).
But seems I was wrong here: the problem is not in how the callback is
called (I already deal with that in TSVN correctly).
The problem comes from the fact that some svn commands use more than one
session. When that happens, the client (i.e., TSVN) does not know that
the progress information is passed from more than one session and that
leads to really confusing progress info. I've noticed that for example
merges use two sessions (in ra_svn, haven't checked the other layers).
And each session calls the progress callback.
Example (s1 = session 1, s2 = session 2):
s1: callback( 0, -1 )
s2: callback( 0, -1 )
s1: callback( 512, -1 )
s2: callback( 256, -1 )
s1: callback( 1024, -1 )
s2: callback( 512, -1)
...
(this is just an example, real info is usually different, but you
hopefully get what my problem is)
as you can see, the callback is called with 'switching' progress
information, but of course the callback consumer has no information
about the session from which it is called.
Any idea how I could handle this? IMHO Subversion should either
'combine' the progress information of the sessions or otherwise extend
the callback api to include info about the session. Otherwise I don't
know how I can make good use of the progress info.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Received on 2008-08-05 19:11:34 CEST