Since I started learning Django framework I came across several applications that switched from GoogleCode to GitHub. But I开发者_开发百科 can't see any explanation for this fact... Is there any specific reason for that? Does this mean it GitHub is more adequate for Django-related projects?
I believe there are several reasons. First and foremost, Github was just awesome compared to Google Code. They reinvented code and projects as social objects and took git's distributed model and made it into more of a culture where doing, making changes and pushing forward is more central than project ownership. Github encourages forking (they make it super easy) as the way to collaborate (fork, modify and send pull requests). If the owners of the "upstream" project moves too slow, you eventually become the owner of the project.
Beyond your own projects, Github exposes who you're following and which other projects you follow. That is, find a great programmer on Github and follow that person. If that person starts following a project, it's a strong indicator that project is worthwhile and likely a good choice next time you're looking for something in that area. Start following the people working on the projects you're using today and you'll soon see the value of this.
Second: At the time, Google Code only supported Subversion-based projects (whereas now, they also support Mercurial.) If you've only used Subversion before, it might not say much but the differences are key to why a lot of people moved to git and Github. Mercurial is actually considered more pythonic
than git and thus many use Bitbucket (I'm pretty sure they weren't around when Github launched.)
Third: Most Django reusable apps are single person projects so many features of Google Code are not that useful. In general, Github is way easier to work with for smaller projects.
Fourth: The usability. Github looks great and is easy to use.
It's mostly due to preference. GitHub offers better "social" tools for code (easier to fork, easier to make pull requests, that sort of thing). And, to be honest, GitHub's UI is better than that of Google Code.
I'm not on GitHub. In fact I have used Mercurial as SCM for my Python/Django projects for the past year and I think its great (coming from someone who used SVN for years). Here's a great primer on Mercurial by Joel Spolsky: http://hginit.com/
As for a place to host your Mercurial repository, i use BitBucket.org
Because if you run an open source project and want to increase contributions, moving to github is probably the easiest and most straight forward way to do it. Being a phenomenal service aside, when most OSS devs have accounts there and host their own stuff there, it brings the barrier to contributions down almost as far as possible for them.
For me personally, if you are on SVN there is an extremely low chance that I will contribute back patches. If you are on git, that gets higher, but if you are on github, i am going to fork your project there anyways. Even if I don't hit the "pull request" button, you are still able to see my own personal patches, and pull them in if you find them interesting. It also allows your users to do the same thing, which makes it more attractive to use github hosted projects, even if you don't hack on them.
Because google code doesn't have git for source code management? It does have Mercurial though, but some people would rather git.
精彩评论