Our setup as follows:
We have a local development server running Ubuntu, with a setup to mirror that of our live host.
Each developer works on a Windows machine and accesses the files from the local dev server.
The projects in question are a number of websites built in PHP. Seeing as there are no good reasons not to use version control, we intend to get either SVN, Git, Mercurial or something else up and running on the server.
The question is, how do we do that but commit changes to it from the Windows machines, and how do we check out a finished area of a site (project), or a site as a whole, to upload onto the live (remote) server?
Why use SVN:
Why use git (probably applies to mercurial too):
One way to handle your use case is:
– Each developer has their own private git repository
– Developers push code changes to the dev server’s repository when they’re tested and ready for production use.
– The live server has a checkout that’s either updated on a regular schedule, updated manually, or updated by a commit hook on the dev server’s repository (when commit, “ssh live.server.com (cd /my/dir ; git pull origin HEAD)”).
This procedure could be adapted for SVN just as well, but the private repositories would just become checkouts.