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

Re: [Google Summer of Code] Subversion servlet for WEBrick

From: Kouhei Sutou <kou_at_cozmixng.org>
Date: 2007-03-21 02:07:25 CET

Hi,

In <20070321.003222.07637579.nori1@dolphin.c.u-tokyo.ac.jp>
  "[Google Summer of Code] Subversion servlet for WEBrick" on Wed, 21 Mar 2007 00:32:22 +0900 (JST),
  Kobayashi Noritada <nori1@dolphin.c.u-tokyo.ac.jp> wrote:

> Currently, Subversion has only one HTTP server option: Apache +
> mod_dav_svn. So, I'd like to add the second option: Subversion
> servlet for WEBrick. WEBrick is an HTTP server toolkit written in
> Ruby and is included in the standard distribution of Ruby. Although
> it is not appropriate for creating HTTP servers with global access, it
> is useful for creating servers that can be set up easily and for
> creating servers for testing and internal use. In particular, with a
> popular web application framework Ruby on Rails, WEBrick is now widely
> used. My idea is to add a Subversion servlet for WEBrick, which can
> ease using Subversion from programs (in particular, web applications)
> written in Ruby.

This sounds good for me.

I want portable Subversion server because the following
reasons:

  * We need to run Subversion server to test remote server
    access and authentication of the Ruby bindings. Now, the
    Ruby bindings use svnserve but there are some problems
    on Windows:

      * Windows doesn't have fork.
      * svnserve.exe supports Windows service but it's too
        difficult to run without installation.
        * Collect all DLLs required by svnserve.exe. (We
          can't modify PATH environment for the Windows
          service because a user that executes test suite may
          not have Administrator authority.)
        * svnserve Windows service runs on different user
          authority instead of a user test executes test
          suite. The current workaround is that we grant
          Everyone full access to copied svnserve.exe and
          related DLLs and a test repository.
      * We can run svnserve.exe by popen instead of
        fork. But we can't kill the process because I don't
        know how to send a signal to stop svnserve.exe. I
        want svnserve.exe to have a mode that svnserve.exe
        stops when standard input gets EOF.

    If we get a Subversion servlet for WEBrick that supports
    REPOSITORY_PATH/conf/svnserve.conf, we can use the
    servlet instead of svnserve.exe and resolve this problem.

  * We can access a personal repository from remote host via
    HTTP. (Most of the people can't run Apache + mod_dav_svn
    personally.) Yes, we can do this with svnserve but it
    uses svn scheme and it will be blocked by firewall. If
    we use svn+ssh to over firewall, we need to setup ssh on
    a host that has a personal repository.

    This resolves firewall problem but we can't use a Web
    browser to browse repository. We can resolve this
    problem by installing Subversion repository browser like
    Trac.

    Both firewall and browsing problems can be resolved by
    some softwares that already exist but it's not easy to
    setup. If we have a servlet for WEBrick, we only depends
    on only Ruby and the Ruby bindings.

    And WEBrick's CGI API is same as WEBrick's servlet
    API. So, we'll be able to run a Subversion servlet as
    CGI. We may be able to publish a personal Subversion
    repository on a rental server.

    The last paragraph says that I want to recommend WEBrick
    instead of Mongrel for target Web server.

  * There are some Trac like Web applications for Ruby:
    Retrospectiva[1], Collaboa[2] and so on. And they use
    Ruby on Rails. If we get a Rails plug-in to provide
    Subversion server feature to Rails application, we may
    be able to use them as repository browser and repository
    server. (We doesn't need to setup Apache +
    mod_dav_svn. We just only setup them to provide users
    repository server and repository browser.)

    The Rails plug-in should be implemented without
    depending on WEBrick. So, it's better that this task is
    optional task.

    [1] http://retrospectiva.org/
    [2] http://collaboa.org/

This application, implementing a Subversion servlet for
WEBrick, may be a challenging task as Malcolm says. But I
want SoC project to host a challenging task.

At least I want a Subversion servlet for WEBrick.

Thanks,

--
kou
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Mar 21 02:07:55 2007

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