On Wed, Dec 12, 2012 at 9:30 PM, C. Michael Pilato <cmpil...@collab.net> wrote: > On 12/12/2012 03:02 PM, Lieven Govaerts wrote: >> On Tue, Dec 11, 2012 at 9:29 PM, C. Michael Pilato <cmpil...@collab.net> >> wrote: >>> Those technical challenges aside, I've since started to doubt the wisdom of >>> adding special treatment of the starting revision to this API anyway. I'll >>> continue pondering other options. >>> >> >> What about my earlier suggestion? > > I considered it. > > And ... then I considered it a nasty hack. Seriously, this is really not > the kind of thing that *should* be exposed through an API. > > ... > svn_boolean_t honor_editor_api_promises; > ... > > Really? :-) >
Depends a bit on how you name that function of course, you could call it relax_editor_depth_first_promise(svn_boolean_t) - with default to true. This is my reading of the conclusion of your issue 2932: we're relaxing the rules a bit, but we think it's safe to do so we make this the new default. > It does occur to me that one way to work around this is to add an API that > seems generally useful: > > svn_ra_do_checkout() > > This would be Yet Another Flavor Of Update-ish Thing, but wouldn't generate > a reporter/reporter_baton pair, and would immediately begin driving the > provided editor/editor_baton. And ra_serf's implementation thereof would, > of course, use send-all mode. Note that send-all is not the solution if the server insists on skelta mode (see my previous comment), so if you do an update or a checkout, you still have to tell serf to limit to one connection. > > svnrdump is only trying to do essentally that anyway -- a update of > ${NOTHING} to ${SOME_REV}. It calls svn_ra_do_update(), uses the provided > reporter to say "I've got nothing", then finalizes the report and away she > goes. Would it not be more straightforward to offer a compact API for just > those sorts of use-cases -- the "fake update from nothing to something" > use-cases? Maybe, but would anything else besides svnrdump use this new API? svn checkout/export solve this in a different manner already. Lieven