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

RE: Proposed work for running svnserve as a Windows service

From: Arlie Davis <adavis_at_stonestreetone.com>
Date: 2006-02-21 17:56:39 CET

 

>> --create-service <name> --root <root> [--auto | --demand]
[...]
>
> I'd prefer:
> --service-startup=automatic|manual
>
> I think it is more understandable if we use the same
> terminology the Services MMC snapin uses (Automatic / Manual),
> and also to use one option with a value, rather than two mutually
> exclusive boolean options.

Agreed. "Demand" is the terminology that the Win32 API uses, but I would
rather go with "manual" since that is what users/administrators see.

> Also, --root is not enough. --listen-host, --listen-port, and
> - --read-only must also be service-specifiable.

Ok. That actually makes life a little *easier* for me in some respects. I
think I was assuming that those parameters came from the svnserve
configuration directory. I'll update my mini-spec to account for this.

>> --delete-service <name> --root <root>
>> Deletes a service that was created using --create-srevice.
>> As a safe-guard, the user must provide the same root path
>> that was specified during --create-service, in order to
>> insure that the correct service instance is being deleted.
>
> I don't think the --root option should be used here - it seems like
overkill, to me.

Well, it's a safety feature. I would strongly suggest that we either
require --root or --force. --force would uninstall the service no matter
what its root is, while --root would require it. I realize that the only
thing being deleted is the Win32 service, and not the repository itself.

I'm willing to bend on this, but my preference is to require something
additional to confirm that the user has identified exactly which repository
to delete.

> Configuration Data
> ------------------
>
> svnserve would be modified to store and read the path to the
> repository directory in the registry key for the service. This allows
> svnserve to start without requiring the --root parameter when it is
> started by the Service Control Manager. The --root parameter could
> still be used to override the repository path.

> Wait, this seems overcomplex. Why not just ask the service
> manager to pass all relevant options to the svnserve
> command line, including --root ?

This is a more reliable way. I ask you to believe me that this is *less*
complex and more reliable, and my belief in this comes from developing,
testing, and supporting literally dozens of commercial-grade services.

For example, one of the requirements that has been discussed is enumeration.
If these parameters are stored in a registry key (which is easy and
reliable), then the enumeration code can pick those values out of the
regisry. If, instead, those values are specified on a command-line, then
any enumeration code (or management code that would *alter* those values) is
forced to parse the command-line, pick out values, and potentially rebuild a
new command-line.

>> Installer GUI
[...]
> I'm not really convinced there is any need for a GUI to do this.

Is it a bad thing?

Max and Matthias, thanks for you comments. I'll incorporate this feedback
and post a 0.1 minispec.

-- arlie

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Feb 22 01:27:59 2006

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.