.oO( home ) photography Offenbachprogramming Frankfurtwebdesign Rhein/Main
Klausolino's blog

Definition

to blubbel (verb) := to talk incomprehensibly

as in: he kept on blubbling until the audience started to throw tomatoes

also used to indicate that bubbles are showing up on the speaker's mouth


LIVE cam

[5] Thu, 02 Nov 2006 12:19:00 +0000
Thoughts on SubVersion server setup
with WebDAV + auto versioning

This is a quick HOWTO log from setting up SubVersion, Apache WebDAV, and auto versioning.

Download Apache from http://www.apache.org.
Download SubVersion from http://subversion.tigris.org.

Assuming Windows 2000 with Apache 2.0.54 + SubVersion 1.4.0.

Install Apache, e. g. in "C:\Program Files\Apache Group\Apache2\".
Unpack svn, e. g. in "C:\Program Files\Subversion\".
Chose repository server location, e. g. in "C:\dat\svn\".

Documentation for svnserve:
http://svnbook.red-bean.com/en/1.1/ch06s03.html

Start svn server:

svnserve -d -r C:\dat\svn

Create repository:

mkdir C:\dat\svn
svnadmin create C:\dat\svn

Check:

svn status

Setup shell:

set SVN_EDITOR=notepad

Think of project names (e. g. www, doc, ods) as top-level directories.
Beneath, create directories for trunk, tags, branches.

Tag files about to be versioned with these keywords in the headers:

$Date$
$Revision$
$Author$
$URL$

Alternatively, use $Id$.

For fixed width (e. g. in binary office documents), use $Date::   $ syntax.

Test importing files from current directory into the repository -- will add current directory to the repository root:

svn import . svn://127.0.0.1

Works only if user authentication has not been setup. Otherwise:

cd .../projectname
svn --username klaus --password secret import . svn://127.0.0.1/projectname/trunk

This imports the current directory at the specified point in the repository.

Create .svn association in respective directories:

svn --username klaus --password secret checkout projectname/trunk

Modify an existent file and test via an svn commit:

notepad file.txt
svn commit

Bulk set properties via:

svn propset svn:keywords "Date Revision Author URL"

Enforce access restrictions (klaus / secret):

notepad C:\dat\svn\conf\svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = Klaus' Repository

notepad authz

[groups]
www.k-hi.net = klaus

[/]
klaus = rw
* =

[repository:/]
klaus = rw
* =

[/www]
klaus = rw
* =

todo: add Carl-Martin, Christian, Renate, ...

notepad C:\dat\svn\conf\passwd

[users]
klaus = secret

Again, test import with username / password protection:

cd .../projectname
svn import --username klaus --password secret . svn://127.0.0.1/projectname/trunk

(--no-auth-cache would prevent caching the credentials locally.)

svn log --username klaus --password secret svn://127.0.0.1
svn list --username klaus --password secret svn://127.0.0.1

-- then do 1st checkout

svn checkout --username klaus --password secret svn://127.0.0.1/projectname/trunk

dir /a

This yields a hidden .svn directory!

Set up the shared object files with Apache:

copy "c:\Program Files\Subversion\bin\*.so" "c:\Program Files\Apache Group\Apache2\modules\*.*"

mod_authz_svn.so
mod_dav_svn.so

Modify httpd.conf:

LoadModule dav_svn_module mod_dav_svn.so
LoadModule authz_svn_module mod_authz_svn.so

Or point over to SubVersion:

LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"

tail -f httpd-access.log

"C:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -c htpasswd klaus

httpd.conf:
<VirtualHost _default_:81>
        ServerAdmin blub@blubbel.nospam.com
        DocumentRoot "C:/dat/www/blubbel.com/pub"
        ErrorLog logs/blubbel.com-error.log
        TransferLog logs/blubbel.com-access.log

        RewriteEngine on

        <Location /svn>
                Dav svn
                AuthType Basic
                AuthName "Auth Required"
                AuthUserFile "C:\Program Files\Apache Group\Apache2\conf\htpasswd"
                Require valid-user
                SVNPath /dat/svn
                SVNAutoversioning on
                AuthzSVNAccessFile /dat/svn/conf/authz
        </Location>
</VirtualHost>

http://192.168.1.103:81/svn/
(klaus / secret)

For example:

P:\>"C:\Program Files\Subversion\bin\svn" log svn://127.0.0.1
------------------------------------------------------------------------
r2 | klaus | 2006-10-31 15:53:04 +0100 (Tue, 31 Oct 2006) | 2 lines

Autoversioning commit:  a non-deltaV client made a change to
/defnw/r.txt

And a bit of brainstorming:

http://svnbook.red-bean.com/en/1.2/svn.webdav.clients.html#svn.webdav.clients.tbl-1

http://www.ics.uci.edu/~webdav/
"DAV Explorer is a WebDAV, DeltaV and ACL client application that uses the WebDAV, DeltaV and ACL protocols ..."

java5 -jar DAVExplorer.jar

http://svnbook.red-bean.com/en/1.1/apcs02.html

http://www.sei-info.co.jp/IPAHP/svnasDV.html

Get Version Tree        HTTP 501error
>> roll own cgi-bin that invokes svn client?

telnet 127.0.0.1 81

GET /svn/defnw/webApplication/test.jsp HTTP/1.1
Host: 127.0.0.1:81
Connection: TE
TE: trailers, deflate, gzip, compress
User-Agent: UCI DAV Explorer/0.91 RPT-HTTPClient/0.3-3E
Translate: f
Authorization: Basic a2xhdXM6a2xhdXM=
Accept-Encoding: deflate, gzip, x-gzip, compress, x-compress

Guessing and rewriting:

GET /svn/defnw/webApplication/test.jsp@r1 HTTP/1.1
Host: 127.0.0.1:81
Connection: TE
TE: trailers, deflate, gzip, compress
User-Agent: UCI DAV Explorer/0.91 RPT-HTTPClient/0.3-3E
Translate: f
Authorization: Basic a2xhdXM6a2xhdXM=
Accept-Encoding: deflate, gzip, x-gzip, compress, x-compress

Does not work!

http://www.ics.uci.edu/~ejw/authoring/requirements/rfc2291.txt

   5.9.2.2. Referring to a specific member of a version graph. There
   must be a way to refer to each member of a version graph. This means
   that each member of the graph is itself a resource.

Cross-link from one0.com?

http://viewvc.tigris.org/
ViewVC - Web-based Version Control Repository Browsing

http://www.viewvc.org/

Others, potentially php based:

http://sourceforge.net/projects/svn-web-control/
http://sourceforge.net/projects/svnb/ (perl)
http://sourceforge.net/projects/svninfo/ ("svninfo is a php-based SVN repository viewer. It currently contains changelog, diffs, and line total graphs.")

>> but requires database

>> Go for ViewVC.

K-

   

About

My name is Klaus Hildner.
I was born 1969 in southern Germany.
 
I am a graduated computer scienctist from the University of Stuttgart, Germany, and have a background in web technologies (html, js, php, java, sql).
In my spare time, I enjoy photography and sports like running, cycling and badminton.

Expect this blog to be a chaotic mixture of English and German.

Timeline

[5] Thu, 02 Nov 2006 12:19:00 +0000
Thoughts on SubVersion server setup with WebDAV + auto versioning

[4] Tue, 10 Oct 2006 21:03:00 +0000
Copyright goes Google

[3] Mon, 09 Oct 2006 15:38:00 +0000
mein LOTTO-Normalschein

[2] Mon, 09 Oct 2006 09:57:00 +0000
blog-to-web test

[1] Tue, 19 Sep 2006 19:48:00 +0000
Bike Lanes are Not Bike Lanes

[0] Sat, 16 Sep 2006 23:13:00 +0000
Hello world!

Contact

Klaus Rolf Hildner
http://www.k-hi.net
Taunsring 31
Offenbach am Main , D , 63069 Germany
YIM