tags:

views:

105

answers:

3

So we are pushing to create good processes in our office. I work in a web shop that has been doing web sites for over a decade. And we don't use version control. I know! It's bad, not my fault. I'm the guy with a SoftE background pushing for this at a minimum.

The tech lead has been looking into it. We all use Mac workstations and mostly use Coda for editing since it is a great IDE. It has SVN support built in but expects it to work on local files. We're trying to explore mounting the web directory as a local network drive with an SFTP tool.

We are a LAMP shop, BTW.

I am wondering what the model is here. I think we have typically would checkout the whole site to our local machine where we have apache running and then test it there? This isn't how we work yet, we do everything on the server. We've looked at checking things in and out, but some files are owned by apache and the ownerships change when I check them in, because I'm not apache.

I just want to know a way to do this that works given my circumstances. Would be nice to not have to run apache locally.

+2  A: 

You might want to checkout the Coda mailing list and ask there. Lots of Coda enthusiasts there with specific experience.

Alan Storm
+1  A: 

If you don't want to have to run locally could make Apache on your server run a copy of the site for every developer, on a different port per person, and then mount those web-roots to the local macs and make that the working directory. If you're a small shop that's not hard to manage. I find that pretty easy to set up and saves a lot of resources on the local machines. The one-site-per-person helps to avoid conflicts with multiple people working on files at the same time.

What I'd additionally recommend is to have a script that gets the latest changes from SVN and deploys the entire site to the production server when you're ready. You could have that script change permissions on appropriate files/folders as needed to be owned by Apache. The idea once you're using source control is to never manually edit the production files -- you should have something that deploys it from SVN for you.

Parrots
+1  A: 

A few notes:

  1. Take a look at MacFuse / MacFusion (the latter is the application, the former is the library behind it) to mount remote directories via SSH / FTP as local ones.

  2. Allow your developers to check out into their local environment (with their own LAMP stack if they're savvy), or look into a shared dev environment with individual jails. This way your developers can run their own LAMP stack (which you could deploy for them on the machine) without interfering with others.

    The idea being, let them use a workflow that works best for them, to minimize the pain in adapting to this change (if change management might be an issue!)

Just as an example, we have a shared dev server where jails are created with a single command for new developers. They have a full LAMP stack ready to go, and we can upgrade and re-deploy jails easily to keep software up to date. Developers have individual control to add custom settings / extensions if they need it for work, while the sys admins have the ability to reset everything when someone accidently breaks their environment :)

Those who prefer not to use jails, and are able to, manage their own local environments (typically through Macports or MAMP).

Owen
This is interesting. Can you elaborate on how a jail would be setup? We are running an office dev server and may want to try that.
tkotitan
We're using FreeBSD jails, but there are similar setups for other OS's http://en.wikipedia.org/wiki/FreeBSD_jail.
Owen