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

Re: Subversion working copy via Samba

From: Ryan Schmidt <subversion-2011a_at_ryandesign.com>
Date: Fri, 7 Oct 2011 04:35:54 -0500

On Oct 7, 2011, at 04:09, Dalibor Karlović wrote:
>
> Sure, I'll lay it out:
> - we're a small web development studio
> - we have a development server which exposed one share to the team via Samba
> - if we're developing a new site called foo.com, we create a working copy on
> the server and make it available as foo.com.web in our local domain which
> makes it accessible from each workstation right away
> - this gives us a point to which anybody working on the site can hook up to
> and we all can see exactly what's going on at any point in time
> - also, the less tech-savy guys/gals (designers, copywriters, PMs) don't
> need to setup their own entire work environment (server, database, virtual
> hosts, etc), they just open the share and a browser and start working.
> - we cannot automate the procedure because there's alot of different systems
> on staff (WinXP, Win7, MacOSX, Fedora, Ubuntu, etc).

Having developers editing code in a single shared working copy means you lose many of the advantages using Subversion offers.

> The one "working copy per user" has too high of a (time) cost here.

(At least) one working copy per developer per project is what you should be striving to use. That way developers can work independently and don't step on each others' toes.

In the small web development shop where I worked, we also had a central development server which ran the web server, database server and Subversion repository. A central working copy (for each project) was auto-updated via post-commit hook as described here:

http://subversion.apache.org/faq.html#website-auto-update

The web server was configured to allow access to this directory (e.g. http://dev.example.com/project1 or http://project1.dev.example.com). Nobody but the post-commit hook had permission to modify this directory; it was a pristine always-up-to-date copy of the project's trunk from the repository. Management and other non-developers could access this URL to see how things were going.

Each developer got his or her own working copy(ies) on the development server as well. Each developer had a login on the server and could make working copies in their home directory's public_html folder. Our projects were engineered such that it was easy to run them from any URL, so our developers could access their own work areas like http://dev.example.com/~developer1/project1/workingcopy1. Developers could create and delete working copies as needed. If your projects are not engineered to work on any URL, and require that they be at a the root of the URL space, then you could manually set up each developer's working copies as new vhosts, like http://workingcopy1.project1.developer1.dev.example.com

In our setup, we shared a single database instance among all working copies, so obviously developers had to be very careful when making schema changes to the database. The alternative would be to give each developer their own database instance, but that's tough to keep synchronized. We did ok with just a single instance, duplicating the database only as needed when making really involved backward-incompatible changes.

Using a working copy stored on a Samba server is not recommended because you tend to run into permissions errors like you saw. We used Samba in our shop and for whatever reason it worked ok for our Windows users but not for me on Mac OS X so I just ssh'd in, or kept my working copies on my Mac and ran my own web server.
Received on 2011-10-07 11:36:34 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.