How do you manage your Concrete projects?

Permalink
I am brand new to building sites in concrete, but have been a software developer for a long time. At first my concrete usage was limited to doing things inside of concrete using themes and add-ons I got from the marketplace, but pretty soon I was hacking into php and css files to tweak this or that. And I promptly broke something -- I went into the header.php file from one theme and pasted some code that I had modified in the header.php of a different theme and the site got all wonky-looking. So I re-downloaded the theme that I broke and started over.

Now that particular problem was easy enough to fix, but the programmer in me immediately worried about what happens if I have many hours invested in customization, and then I break that site terribly when trying to tweak one more thing. In a typical development environment you go back into the version control system and start over from the last point before you broke it.

So how do concrete developers manage version control for their concrete work? Over the years I've used rcs, sccs, Subversion, cvs, sourcesafe, and they usually work by dropping directories and/or files all over your source-code directory tree, and/or mucking around with file permissions to signal to the version control system which files are locked and unlocked. How do you make that work in a web site? The first thing the directions tell me to do is to give write permission to user www in all of the files for the site -- so does that blow up the source-code control system? Do the auxiliary files cause security holes? Do you have scripts/procedures that allow you to fix-up the different parts of the project after they get broken by a recursive chmod?

What I really need is a practical guide to concrete project management -- has any wise concrete developer produced such a guide?

 
alexfiennes replied on at Permalink Reply
Did you get an answer to this question yet? I am just starting on Concrete dev and am very interested in how much of a Concrete deployment should be checked into git and how much should be left as whatever comes Out Of The Box when you install Concrete?

I'm also interested in what happens when one upgrades Concrete to a newer version and how this would play ball with any version control system.

If you have found any sensible suggestions or project templates as to how to handle this then please let me know URLs etc...
JohntheFish replied on at Permalink Reply
JohntheFish