ExpressionEngine CMS
Open, Free, Amazing

Thread

This is an archived forum and the content is probably no longer relevant, but is provided here for posterity.

The active forums are here.

Making EE version-control friendly

January 31, 2008 5:52pm

Subscribe [5]
  • #1 / Jan 31, 2008 5:52pm

    poietes

    1 posts

    Hi all,

    I work for a web design/development studio that builds a lot of EE sites.  We like to think that we stretch the boundaries a bit and create some pretty cool EE sites.

    We love how flexible EE is when it comes to applying a design to a site.  Our designers, who create the look and feel of a site without even considering what’s possible or not within EE, have rarely come up with anything that can’t be integrated into EE in some way.

    EE’s a fantastic system, but the one thing we find frustrating is that it’s very hard to work on collaboratively.  If you’ve got more than one developer, say a front-end HTML/CSS developer and a back-end developer who’s setting up how the data’s arranged and how it’s displayed within templates, in our experience, you can run into a lot of problems.  Overwritten work, for one.  And if you’ve got more than one environment ... especially a live environment where new data is constantly being added, you can have some real headaches.

    We’d love to be using a version control system, such as SVN, to manage our sites.  But EE really doesn’t lend itself to it.  Unfortunately, a lot of the definition of content is stored in the database along with the content itself. 

    This, of course, is so that people can login and move things around, create new weblogs, etc.  In our experience, clients don’t actually do this much.  Once the weblogs are created and the site set up, they’ll just create new entries, upload a few images, and be done with it.

    I guess what I’m getting at is that EE stores a lot of configuration and data definition in the database along with the data itself.  If, as part of development, you’re changing data definition (adding new weblogs, fields, etc), this all needs to be done through the admin system, and once you’ve done these changes it’s difficult to migrate these live without repeating the whole process (very carefully) on live, or somehow merging the two databases (assuming the data on each is different and you want to keep all current data on both).

    Templates are a bit of a pain too.  You’ve got to create it within the EE interface, save as file, etc.  There’s no setting you can flick on that tells ee to look in the template folder for templates ... I suppose this is because each template has data associated with it ... refresh interval, caching, type, allow php, php parsing, etc.  This makes sense, but could this not be solved with a few directives at the top of each template?  e.g.
    {type:css}
    {allowphp:true}
    {refresh:20}
    {access:banned|members|all}
    etc.?

    I’m aware that the configuration file now overrides settings in the database for a lot of config settings, and that’s a great start. 

    EE does a great job of separating presentation from content, but it’s the separation of content from configuration and customisation that would make things easier for studios that are a bit larger.  Hopefully EE version 2.0 addresses some of these issues.

    I’ve trawled these forums for any clue who have successfully created a development/staging/live chain with EE, using version control along the way, but have not yet seen a compelling example of someone who’s managed to do it.  If you have, I implore you to explain how you’ve done it and, even better, write a wiki entry about it.  If I ever manage to figure it out, it’s the first thing I’ll do.

  • #2 / Jan 31, 2008 11:48pm

    John Fuller

    779 posts

    We have a thread going here but as you say, we do not have a solution.  Some of the issues you are referring to are tricky to deal with in any scenario.

    For instance, Subversion was not really designed for web work though there are situations where it works nicely anyways.  I use it for a CodeIgniter project and the developers use subversion for the docs.  They also use it for their internal work.  Getting designers into the mix is where it becomes more tricky to get right.

    Handling overwritten work can be tricky even with subversion.  There are still scenarios where this can be a big headache if you don’t have a solid process.  I think this is more of a planning issue than anything else.

    Also, you might have a look at the edit alert extension.  It will tell you that someone else is working on a template.

    I think this is a great conversation and the mods may want to merge these threads.

.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases