On 11/14/06, Ph. Marek <firstname.lastname@example.org> wrote:
> > If you use do_diff2(), you may get what you want. It's extremely
> > similar to do_update(), but has a text_deltas argument. If the
> > argument is false, then you only get a 'skeletal' report back,
> > indicating which files need to be updated. It's up to you to then
> > call ra_get_file() on each one.
> Sorry for being ignorant, but the only difference I see (against
> svn_ra_do_status) are the text_deltas and ignore_ancestry arguments.
> That's what I asked before - do I have to do a remote-status and then get all
> needed files?
Yes, that's one possibility. Another possibility is to call do_diff()
The do_update() function was specifically designed with libsvn_wc in
mind (i.e. that text-bases are available); I don't think we're going
to add a 'textdeltas' argument to it as you suggest, because we
already have do_diff() and do_status() to accomplish what you want.
Here's a way of thinking about these three functions, that will
hopefully clarify their design to you:
The reporter vtable's purpose is *not* to say "here's what I did".
Its purpose is to 'build a temporary tree on the server' which the
server can then compare to a revision. If your working copy has a
mixture of revisions, you need to build a tree on the server that
matches. If you want a missing file to be restored, you should report
the file as missing (reporter->delete_path()). If a file is merely
scheduled for deletion, there's nothing to say; you want the file to
still be present in the temporary tree when the comparison happens.
> Well, you're right, I already feel a bit - this assumption is not only done in
> the working copy layer (as I hoped), but is written over the entire ra layer
> as well ...
It's not as bad as you think. Yes, the do_update() function assumes
you have text-bases. But the majority of the routines in svn_ra.h are
generic APIs for browsing a repository: fetching a file, reading the
contents of a directory, retrieving the history of a path, and so on.
> I just assumed (yes, I know) that since subversion without text-base is work
> in progress that someone had a bit of brainstorming how to implement it.
There's no work in progress. It was proposed over a year ago as a
Summer of Code project, but the work never happened. Nobody's working
on it, and I don't even think anyone has started typing up a design
Can I ask what you're doing? Most people use svn_ra.h to create
repository browsers and so on. Are you creating a whole new version
control system? Some new working copy library? If so, you might
want to look at svk. svk implemented their own working copy called
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Tue Nov 14 16:09:57 2006