11.07.2015 Views

Version Control with Subversion - Login

Version Control with Subversion - Login

Version Control with Subversion - Login

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Server Configurationbetween key= and must have exactly one space before the value. Lastly, be carefulabout spaces in your command line to be invoked. If a directory name contains spaces (orother characters that need escaping), place the entire inner value of binpath in doublequotes, by escaping them:C:\> sc create svnbinpath= "\"C:\program files\svn\bin\svnserve.exe\" --service -r C:\repodisplayname= "<strong>Subversion</strong> Server"depend= Tcpipstart= autoAlso note that the word binpath is misleading—its value is a command line, not the pathto an executable. That's why you need to surround it <strong>with</strong> quotes if it contains embeddedspaces.Once the service is defined, it can be stopped, started, or queried using standard GUI tools(the Services administrative control panel), or at the command line:C:\> net stop svnC:\> net start svnThe service can also be uninstalled (i.e., undefined) by deleting its definition: sc deletesvn. Just be sure to stop the service first! The SC.EXE program has many other subcommandsand options; run sc /? to learn more about it.Built-in Authentication and AuthorizationWhen a client connects to an svnserve process, the following things happen:• The client selects a specific repository.• The server processes the repository's conf/svnserve.conf file and begins to enforceany authentication and authorization policies it describes.• Depending on the defined policies, one of the following may occur:• The client may be allowed to make requests anonymously, <strong>with</strong>out ever receiving anauthentication challenge.• The client may be challenged for authentication at any time.• If operating in tunnel mode, the client will declare itself to be already externally authenticated(typically by SSH).The svnserve server, by default, knows only how to send a CRAM-MD5 1 authenticationchallenge. In essence, the server sends a small amount of data to the client. The clientuses the MD5 hash algorithm to create a fingerprint of the data and password combined,and then sends the fingerprint as a response. The server performs the same computation<strong>with</strong> the stored password to verify that the result is identical. At no point does the actualpassword travel over the network.If your svnserve server was built <strong>with</strong> SASL support, it not only knows how to send CRAM-MD5 challenges, but also likely knows a whole host of other authentication mechanisms.See the section called “Using svnserve <strong>with</strong> SASL” later in this chapter to learn how toconfigure SASL authentication and encryption.1 See RFC 2195.162

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!