Alexander Mueller <alex@littleblue.de> writes:
> Right now I am working on the interface definitions for the Java Lib
> Classes. First I thought implementing classes and methods that
> would fit the "svn_client.h" and the "svn_wc.h" function definitions
> would be enough. It would suffice, if there weren't the "editor"
> parameters in the "svn_commit" and "svn_update" functions.
Do you understand `editors' now, having read svn_delta_edit_fns_t in
svn_delta.h? I don't mean to sound condescending; I'm just trying to
figure out how much you've learned so far.
The `editor' arguments in svn_client_*() are all optional. They're
defined as "before" and "after" editors... which means their routines
will be called before and after editor-events take place. (We should
update the doc strings to say that they're optional!)
For example, look at svn_client_checkout(). If you call it like
svn_client_checkout (NULL, NULL, NULL, NULL,
"file:///home/foo/repo/barproject",
"working_copy_dir",
SVN_INVALID_REVNUM, 0, NULL, pool)
Then you will end up with a working copy in a directory called
"working_copy_dir", which contains the latest version of the
'barproject' directory from the 'file:///home/foo/repo' repository.
(Note that the const char * arguments above actually need to be
created with svn_stringbuf_create()).
Now, suppose you have a GUI client. Every time a new file is added to
your working copy during a checkout, you want little yellow chickens
to dance across the screen. Or maybe you just want a graphical
status-bar indicator. So... just write your own editor, and make its
add_file() routine do these things. Then pass your editor to
svn_client_checkout as an "after" editor. Voila.... extensibility.
> Ok. What to do next? I still have to write the JNI functions. But I
> dont wan't to reimplement functionality that's already there. Can we
> shift something in between "svn_cl__update" and "svn_update"? Or
> shall I use "svn_cl__update" directly from my code?
Why do you need to use any code at all in svn_cl__* ?
The svn_cl__* code is the command-line client. You should definitely
look at it as an example of "how to use svn_client.h"... but you
shouldn't write JNI wrappers around them! Wrap svn_client.h and the
headers it immediately depends on.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:33 2006