Hello fellow webworkers out there, this is a question I've had for a while now (and still have not found *the* answer).

How do you establish a versioned workflow for a typical client-website-job, a website which is driven by a cms like TYPO3 or Drupal and is hosted on a server that's in the client's responsibility or on a typical hosting environment?

Things to consider:

  • Editors on the client's side will add or remove contents, either directly via the cms or directly on the server.
  • Several people are used to work on templates or css/js files - through laziness or comfortability via ssh/sftp
  • If I'd establish a local development server, how would I make sure that the environment (software versions and capabilities, charsets etc) mirrors the client's server? What if I need to mirror several clients' environments?
  • (…) My best guess at the moment is using GIT, and having at least local versioning on my local machine. But in terms of team-work and syncronizing this is far from being useful. The biggest throwback is how the files are "synced" with the server; as long as users will connect and change directly via ssh or sftp, all versioning attempts are futile.

Please share your insights in the comments, I'm really stuck right now.