In a related thought: git and mercurial both are distributed systems designed to be able to work without upstream servers. The trick with them is that you have to either participate on a mailing list, or have a publicly visible system to push to.