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

Re: Light weight client question.

From: Greg Stein <gstein_at_lyra.org>
Date: 2003-06-30 07:31:09 CEST

On Sat, Jun 28, 2003 at 01:07:56PM +1000, Ross Mark wrote:
>...
> I'm after a light weight version of the svn+http client. This client
> would only allow checkout's and updates (switch too as it is just a type
> of update). There is absolutely no need to do a checkin. Given this case
> the problems that normally arise from having a working copy and the
> original file should not be an issue since the original is only needed
> for determining the delta on a checkin.

You could build a lightweight client that used the RA interface. Since
you're going for size, I'll assume that you'd code it up in C. If you have a
bit more space, I'd suggest figuring out how to upgrade the Python RA
bindings (several people are interested in direct RA bindings for Python).

But let's assume C.

The libraries you would need are:

    libsvn_ra (altho you could prolly omit this)
    libsvn_ra_dav
    libsvn_delta
    libsvn_subr
    neon
    apr
    apr-util (including expat)

You'd probably want to toss zlib in there, too.

Without too much work, you could perform an "export" (i.e. no admin
subdirs). If you recorded the version number that you grabbed, then you
could also generate an update report and fetch updates to bring your files
up to the latest revision.

There isn't really much need for the .svn stuff (assuming you don't want to
record properties). If you *do* want properties, then you'll have some work
to do since the WC library won't be around to manage them for you.

Then you just record the revision number "somewhere" for your next update.

>...
> Just to let you know I currently store our embedded system images under
> subversion and just configure rsync not to hand out the .svn
> directories. By using a shell wrapper around svn I use svn properties to
> store the currently unrecorded information like symlinks, device nodes,
> owner and groups plus permissions. Nothing gets missed.

Your custom client could accept the incoming properties and do the right
thing, rather than needing to record them.

Note that if your files have got keywords, or you want to do EOL
translation, or whatever... you'd have to duplicate all of that. Most of the
functionality is in libsvn_subr, but (again) the WC library won't be doing
it for you.

IMO, that would really be your only avenue. I'm not sure (at this point)
that we can really deal with the text-base being absent. So patches along
that direction aren't going to be all that easy, nor would there be a lot of
confidence that they don't mess up some edge case. I'm also not sure that
we'd like to see some #ifdef magic in the code to avoid sections, to enable
a checkout-only type of client.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jun 30 07:26:15 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.