views:

692

answers:

1

I looked for similar questions to mine and one seemed promising, but the accepted anser was not applicable to me (I think.)

http://stackoverflow.com/questions/282858/drupal-source-control-strategy

Basically one has to have rights on the server you are deploying to. That is not my situation. I use a hosting service and I do not think I can install SVN on it.

So, do i just develop on a "dummy" site and somehow do a lots of juggling by testing ont eh dummy site, getting the content (Including the database) and putting that in SVN and then releasing it to my live site?

What does the Drupal database look like? My dummy and live sites wo not/will not have the same admin/user logins, etc.

What are others doing for developing in Drupal and managing revisions?

+3  A: 

Quite a few hosting services -- even cheap shared hosts -- have the SVN or CVS client installed. That's different than SVN hosting, a service that some hosting companies do explicitly offer. It's worth checking; having a source control client will make your life a lot easier no matter what.

Our launch workflow tends to go something like:

  • Set up the codebase
  • Put it into SVN/git/whatever Develop, code, create content, configure, etc
  • Make DB snapshots at regular intervals to preserve sanity
  • Delete any dummy content or dummy user accounts that were created during development
  • Push code to a production or test box
    • If you have a source control client on your host, use it to deploy the codebase.
    • If you don't, make an explicit branch or tagged version of your codebase using whatever mechanism your source control system of choice offers.
    • Don't change code on the live server. Always use source control update, or upload a full copy of the "blessed" branch/tag. Getting the live site's code out of sync with itself is hell.
  • If you need to push a new snapshot up and online, either have a separate /db directory out of the webroot that is also under source control, or just use SFT and upload the DB snapshots on an adhoc basis. You don't want to keep them in a web-accessible directory obviously, as people downloaing your raw DB snapshots is double-plus-ungood.

I did a presentation on deployment stuff a month or so ago and posted the slides online; it might be useful. slideshare link

Eaton
thanks. I will look at the link. So you have some local webserver running for development I assume? I'll have to figure out how to do that and set up db. I'll probably be working without a net for a while...
Tim
I'm using a Mac laptop for most of my development, it has the benefit of using apache+mysql out of the box. "Dev laptop" coupld be replaced with "test server" or something like that, too.It's possible to develop on the machine that will ultimately be your live server, but only for launch really.
Eaton