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

Re: status information

From: Greg Stein <gstein_at_gmail.com>
Date: Fri, 18 Jun 2010 13:11:22 -0400

On Fri, Jun 18, 2010 at 12:28, Stefan Küng <tortoisesvn_at_gmail.com> wrote:
>...
> Since you obviously haven't read my post here:
> http://svn.haxx.se/dev/archive-2010-06/0250.shtml

I read it. I read practically every post on dev@ *AND* most of the
posts to commits@.

I didn't respond because I didn't like the idea. We've used flag-based
APIs in the past (entry_modify comes to mind), and they all tend to
suck in the long run. They tend to hide what the function is used for,
and make it very hard to reason about the function. For example,
searching thru the code, I find the following:

  svn_wc__entry_modify(db, local_abspath, svn_kind_unknown,
&tmp_entry, modify_flags, scratch_pool);

That tells me nothing about what that call is doing. So I need to open
an editor, look for the call, and track down all assignments to
modify_flags. And I also need to ensure each member of tmp_entry
denoted by modify_flags has been assigned.

Just way too hard to work with, and so we're undoing all of those in libsvn_wc.

At this point, use libsvn_wc APIs if you need to get something done. I
don't care if you need to use them. Others say "only client".
Whatever. The simple fact is: the API isn't "done", so use whatever
you need.

Cheers,
-g
Received on 2010-06-18 19:12:01 CEST

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