Someone really needs to make a new front-end to modern revision control systems. Solutions like SourceForge and Launchpad are great, but what I envision, particularly for more modern distributed version control systems, could be so much more. I only wish I had the resources to build such a thing.
In addition to allow project and user management, tracking, tickets/issues, etc., such systems would benefit by adding two components: a cloud-based IDE and a build/deploy system. First, the level of integration achievable by adding a build/deploy system would improve the workflow and management of such a revision control system by an order of magnitude, and allow superior tracking and project management. Second, the cloud-based IDE would encourage more flexible usage by developers.
First, I’d like to talk about the browser-based IDE. I’d want something incredibly full-featured — probably not on the same level as Eclipse, but similar in function. It would, of course, support color-syntax highlighting, code completion, drilling through references via control-click, etc. It would allow users to create individual profiles and configurations, and enable them to bang-out code from any device that has a browser. The coolest thing is what would happen when a user logs in — it would create a temporary branch of the whole repo for that user. Every save would generate atomic commits to the branch. The user could then build/deploy to test servers, and finally push changes back to the main tree when done.
In addition to the benefits outlined above for established and well-managed corporate projects, this could actually mean a lot more for open-source projects, as it lowers the barrier of entry for people who want to make quick changes or bug fixes to a project that they are not otherwise associated with. A user could potentially log on with a guest account, hammer out a dozen lines of code, potentially build/deploy/test it, and push the changes to the maintainer. In order to do this today, the user has to be at a computer with a decent editor, have installed the revision control client, all of the compilers/libraries and other dependencies, whatever build tools are necessary, and an appropriate test environment. Using the cloud-based IDE, he could do it at a library that has computers that disable all applications other than a web browser. Or on an iPad.
And you know who I can see best solving this sort of thing? Google. They use git and hg internally, they already host open-source projects, and have a complete set of tools built around these things. Plus, by leveraging the tools they've built for Google Docs, they could have a fully-featured editor pretty easily. Add to that the fact that basically everybody has a Gmail account, and you already have the user identity/configuration thing solved. Tie it in with Google Apps Premium, and there’s an extra service they can charge corporations for.
Building on this further, a light-weight native desktop-based IDE could integrate with this cloud IDE seamlessly. One of the most irritating things about setting up a new development machine is downloading and configuring your IDE and build tools.You have to download your IDE, plugins, version control software, build tools, servers, databases, etc. If there were a desktop IDE that synced settings, including installed extensions, services, and repositories, say the way the Google Chrome browser does, with a centralized account, how much easier would that be? Better still, saved the IDE state between sessions, so I could go home, and pick up exactly where I left off on my work PC.
The possibilities are limitless. The problem is this is a BIG undertaking. There’s no way I could build this myself, especially not in my spare time. I also have very shallow knowledge in the way that some of the key technologies involve work, and have never done anything like this. Finally, I do not have the infrastructure to make this sort of thing work; I’d have to work with someone like Google or Ubuntu or SourceForge to get that.