[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

no patch for issue #1648

From: <kfogel_at_collab.net>
Date: 2003-12-26 05:49:33 CET

I had planned to produce a patch for issue #1648 (real depth indicator
in APIs), just so we could have something concrete to vote on.

In case you don't recall, the idea of this change is to pave the way
for a bright future where we'd have, in addition to the mandatory ten
hours of asteroid mining per week, a --depth={0,1,infinity} option in
place of our current --recursive/--non-recursive. With this change,
we'd be able to add the user option without changing any public
function interfaces. I.e., we get to add a feature later without
causing binary incompatibility.

I wasn't in favor of making this change now, personally, but also
thought the patch wouldn't be too hard to make. However, it turns out
to be *quite* involved, and I'm not going to attempt it.

We have the 'recurse' (or 'descend') paradigm all over the code. In
the public svn_*.h files there are about 30 occurrences, spread across

   svn_client.h
   svn_repos.h
   svn_wc.h
   svn_ra.h

I don't see any point fixing just one of the public headers. We'd
need to reflect the new interface in all of them, if the goal is to
avoid a future API change. But IMHO that's way, way too big a change
for 1.0. (And certainly too big to warrant my writing a patch just
for formality's sake :-). )

This isn't even counting internal function signatures, by the way,
which we'd ideally change along with the public interfaces, in order
to propagate a depth parameter as far possible before returing a
not-yet-implemented error on certain values. We could skimp on the
propagation, I suppose, but one hates to add ugliness to the code
right before shipping...

Greg Hudson, who originally suggested this in

   http://subversion.tigris.org/servlets/ReadMsg?list=dev&msgNo=52297

...may have had something much simpler in mind than what I'm recoiling
from above. Greg, if so, please describe.

Side note: there's an svn_recurse_kind enum in svn_types.h, which is
hardly used in the code. It's very old, from r430. Looks like maybe
we started to go down this road, but never finished?

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Dec 26 06:40:38 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.