1) I agree with Pascal MARTIN - the best for everyone who has their own local environment for developers; that way they can play without stepping on each other. This may mean that you want to have some type of test or intermediate environment where team members (and project stakeholders) can see the integrated code in the development process.
2, 3). In general, it seems you are asking how to automate / deploy to one or more environments. There are several commercial and open source for this. We recently started using Capistrano ( http://www.capify.org ) and were really pleased with the results. It is a ruby tool and it is written using ruby rails. If you are not familiar with these (I was not), it takes a little reading and google to figure it out. However, it is simply based on a means of defining and running scripts on remote servers. These scripts can be used for any type of deployment (for example, we use PHP). Two important things about Capistrano that solve your question:
- He knows about version control; regardless of whether you use SVN, git or others, he knows (several ways) to pull the latest code from the repository and do whatever is necessary to update the remote servers.
- These are transactions, therefore, if something goes wrong with the build / deploy process, it may automatically roll back to the previous version.
4) This is probably a simplified model; just download the codeigniter installation and write your code in the applications / directory. This may be a problem someday if you want to upgrade CI to take advantage of some of the new hot features. You can get around this by specifying the external link svn: codeigniter so that when upgrading it is also included in your code. See http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html for more information ...
fitzgeraldsteele
source share