Ours is a fairly small company (3-4 programmers and 3-4 site designers) that develops a single-purpose PHP web app which provides the functionality to about 100+ websites. We've operated for a couple years in a separate development and production environment which has worked fairly well. There's always been enough separate features to be developed that the programmers never really clash and it was more convenient to work without the source control; even though it had risk of data loss and we've had our fair share of files going missing in an inadvertant move.
The other consideration is that our designers are not tech savvy (I introduced them to html markup, instead of using WYSIWYGs). This has been one of the reasons to hesitate on making the move to versioning.
However, now that we've reached 100+ sites and the development team is growing, I'm trying to standardize our procedures and source-control seems a logical step as far as programmers go. I'm hoping this will also speed up our patch deployments.
Unfortunately, I've very limited experience with setting a source-control system up. What I'm curious to hear about from people with a similar setup, or experience making the switch:
1) Do you version everything (sites, css, html templates, and app code) and thus force the designers to learn versioning? Or is it just the developers that work on the application code?
2) What are some pitfalls to watch out for when initially setting up the source control?
3) Deployment of dev => production tips for source control.
Thanks for all insight.
Edit 1: Dang. Everyone so far is recommending controlling everything. That's going to make me lose my hair early. It's probably going to spark a new question in the near future. Thanks for the advice so far, keep it coming!
Edit 2: A lot of good answers, and we'll be looking into the various version control systems. Thanks for the replies everyone!