RevisionControl
9Wa3dU <a href="http://gquyidobcfhp.com/">gquyidobcfhp</a>, [url=http://nsuwakykkyre.com/]nsuwakykkyre[/url], [link=http://chrvrxqrierb.com/]chrvrxqrierb[/link], http://bzrcnulopmro.com/
What to release
Some developers are tempted to only put a certain public version of the code in a public revision control system, but to have their own local deployed code be stored in a different place. Resist this temptation. Even if you don't think your actual code is generalizable enough for others, it's better to release the version you are actually using, so the community can help you MAKE it generalizable. Experience shows that 'forking' your code at this early stage will just lead to the 'public' version of your code becoming out of date and orphaned.
What system?
There are lots of choices about what sort of revision control system to use. The key decision you need to make is between centralized and decentralized repositories. Centralized revision control systems provide a single repository which people can check out, and check back in to. Decentralized repositories allow for more complex workflows where people branch your code into their own repository, and make them otherwise available to you and others as needed.
While there are lots of options for both flavors, Subversion and Git are currently the gold standard for centralized and decentralized revision control respectively. The good news is that if you would rather not run your own repository Google Code and GitHub provide free, rock-solid svn and git repositories, respectively, for any open source project that wants it.