You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Andrew Roughan <ro...@gmail.com> on 2010/10/18 11:42:43 UTC

Implementing lightweight client over http. Where to start?

Porting the full svn client to my environment is not something I am willing
to undertake myself.
So as an alternative I wanted to implement some Quick & Dirty interface over
HTTP hopefully with a cleartext password.
Is there a document that describes the http interfaces to svn server for
each function?

Thanks,
Andrew

Re: Implementing lightweight client over http. Where to start?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Oct 18, 2010, at 10:47, Andrew Roughan wrote:

> On Mon, Oct 18, 2010 at 12:56 PM, Ryan Schmidt wrote:
> 
>> What is this mysterious environment you have where Subversion does not already run?
> 
> Apple IIgs with a 1Mz 65816 processor (or faster with accelerators and emulators).
> Yes there is a C compiler, but abysmal performance is likely to be an issue.

Applause! :) Best of luck with this project.

Perhaps you can make use of some existing work:

http://www.whatisthe2gs.apple2.org.za/subversion/

More seriously, since the Apple II operating system isn't related to UNIX it may be difficult to get APR ported to it, but that would be the library to start with.

Re: Implementing lightweight client over http. Where to start?

Posted by Andrew Roughan <ro...@gmail.com>.
On Mon, Oct 18, 2010 at 12:56 PM, Ryan Schmidt <
subversion-2010d@ryandesign.com> wrote:

>
> What is this mysterious environment you have where Subversion does not
> already run?
>

Apple IIgs with a 1Mz 65816 processor (or faster with accelerators and
emulators).
Yes there is a C compiler, but abysmal performance is likely to be an issue.

On Mon, Oct 18, 2010 at 2:51 PM, Stephen Connolly <
stephen.alan.connolly@gmail.com> wrote:

> That depends on what you want that client to do....


I don't intend to fully implement all functionality. I want to be able to
checkout and commit.

I will look into WebDav support a bit more. I've read a few more webdav
notes and found the references to RFCs.

Thanks,
Andrew

Re: Implementing lightweight client over http. Where to start?

Posted by Stephen Connolly <st...@gmail.com>.
On 18 October 2010 12:56, Ryan Schmidt <su...@ryandesign.com> wrote:
>
> On Oct 18, 2010, at 06:42, Andrew Roughan wrote:
>
>> Porting the full svn client to my environment is not something I am willing to undertake myself.
>> So as an alternative I wanted to implement some Quick & Dirty interface over HTTP hopefully with a cleartext password.
>> Is there a document that describes the http interfaces to svn server for each function?
>
> Subversion uses many other libraries to get its job done, including apr and apr-util, expat, neon or serf, sqlite and others, and Subversion is itself divided into several libraries that carry out the various tasks. I think if the Subversion developers could have might Subversion lighter, they would have, and I don't think you will be able to make any such "quick and dirty" client without having to reimplement most of Subversion, which, as you may know, represents ten years worth of work.
>
> What is this mysterious environment you have where Subversion does not already run?
>
> To answer your question, the Subversion HTTP interface is WebDAV, so you can read up on that.
>
>

That depends on what you want that client to do.... if all you are
after is to fetch the head revision and you are not interested in
modifying the repo, then you could have a fairly light client using
just a http client lib

if you want to check stuff back in then you might be able to get
somewhere with DAV support which could be handled though http requests
quite simply, but you'd be loosing out on lots of good
functionality...

It would be possible to get a smaller client, if you only need to
support a smaller set of use-cases...

-Stephen

Re: Implementing lightweight client over http. Where to start?

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
To build an 'svn' client that speaks only ra_svn protocol, you'll need
to port only apr and apr-util.  No sqlite, no serf, no neon, no bdb.

You'll need to hack the build scripts to support such a client build.

(Oh, and the ra_svn protocol may be easier to reimplement than the
ra_dav protocol.)

Ryan Schmidt wrote on Mon, Oct 18, 2010 at 06:56:51 -0500:
> 
> On Oct 18, 2010, at 06:42, Andrew Roughan wrote:
> 
> > Porting the full svn client to my environment is not something I am willing to undertake myself.
> > So as an alternative I wanted to implement some Quick & Dirty interface over HTTP hopefully with a cleartext password.
> > Is there a document that describes the http interfaces to svn server for each function?
> 
> Subversion uses many other libraries to get its job done, including apr and apr-util, expat, neon or serf, sqlite and others, and Subversion is itself divided into several libraries that carry out the various tasks. I think if the Subversion developers could have might Subversion lighter, they would have, and I don't think you will be able to make any such "quick and dirty" client without having to reimplement most of Subversion, which, as you may know, represents ten years worth of work.
> 
> What is this mysterious environment you have where Subversion does not already run?
> 
> To answer your question, the Subversion HTTP interface is WebDAV, so you can read up on that.
> 

Re: Implementing lightweight client over http. Where to start?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Oct 18, 2010, at 06:42, Andrew Roughan wrote:

> Porting the full svn client to my environment is not something I am willing to undertake myself.
> So as an alternative I wanted to implement some Quick & Dirty interface over HTTP hopefully with a cleartext password.
> Is there a document that describes the http interfaces to svn server for each function?

Subversion uses many other libraries to get its job done, including apr and apr-util, expat, neon or serf, sqlite and others, and Subversion is itself divided into several libraries that carry out the various tasks. I think if the Subversion developers could have might Subversion lighter, they would have, and I don't think you will be able to make any such "quick and dirty" client without having to reimplement most of Subversion, which, as you may know, represents ten years worth of work.

What is this mysterious environment you have where Subversion does not already run?

To answer your question, the Subversion HTTP interface is WebDAV, so you can read up on that.