Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
I want to start an open source project. Where's the best place to host it?

I am looking for what most people do with respect to Collaboration, Version Control or Managing Features in a Web Development Project. Also how do you migrate your files, data & settings and ensure they work in the environment quickly & easily.

I ask because I am experiencing the following problems (likely because I dont have a proper workflow in place):

  • Moving from 1 environment is a pain. Files can be moved easily but sometimes, settings in files or database needs to be changed -> eg with WordPress some settings are in wp-config.php but others are in the database.
  • I am also afraid of overwriting files/data that may have changed. eg. I moved from dev to prod. Then in the meantime, some production settings are changed. But in development I am unaware so I make some changes to settings too. Then when I am ready to move, I unknowingly overwrite settings/files.
  • Sometimes, my company prefers me to work off production ... but I will definately break stuff as I develop, trigger errors, enable debugging etc. Not good ...
  • Also, how can I collaborate. Like suppose everyone FTP into the server. 2 persons can edit the same file at once. How is that solved? Some version control I guess? I am thinking Cloud9 IDE can help too right?
share|improve this question

marked as duplicate by Mark Trapp Dec 19 '11 at 4:05

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

add comment

1 Answer

Use source control

Whether it's on bitbucket using Mercurial (hg), or github (git), googlecode (svn) or whatever else. Googlecode only works for open source projects, but you can host private repositories on bitbucket and github (free on bitbucket for up to 5 developers). These days, there's virtually no excuse for not running some form of version control.

Onto your points:

  • Moving environments is easy if you're using source control. I can easily move from Windows to a BSD box using the same source files if I have a central source server. Every database server (afaik) has an export utility (i.e. postgresql has pg_dump). Snapshots of the dev database could be taken at intervals (or whenever a change is made) and committed to a depot. That way, everyone working on the project will be running the same version.
  • Using source control will also fix your dev to production problems. Use branches or tags. Use proper version releases and you won't run into problems anymore.
  • STOP WORKING DIRECTLY IN PRODUCTION. This is the worst possible thing that you could do. Downtime and broken functionality makes baby Jesus sad. It'll also makes for disgruntled customers, who will then turn to another product if yours keeps acting up enough.
  • Your collaboration issues will also be fixed by using proper version control

So, out of four points, three will be fixed by implementing a proper version control system. The other one should just stop. It's just bad practice :)

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.