Informal thoughts
I do agree that github is basically the backbone of the whole open source community because it is very important to have a solid way to read and make modifications to code. It makes it easy to debug, revert back to old code if an update is unsuccessful, mark releases and fork code completely to make it your own which is why it is the most commonly used versioning system. However, I do think there is a barrier to entry that makes non-code contributions from people specialising in non-coding fields less likely.
Although I do think it is quite complicated, I don’t see a solution to this problem because obviously things do need to be complex in some ways to work. It would be interesting to see some kind of non-code-centred versioning systems and how they would work.
GitHub and Git
I used GitHub for my project because it is the most common versioning system however I was new to using it collaboratively. The most I’ve used GitHub collaboratively was looking at Ken’s code in our class repository last year. GitHub is so widely used because;
- you can access your code offline – if you have git downloaded you will just have a copy on your computer so you can access the code locally
- branching – easily handles changed made to the project so that merges can be approved
- integration with other applications – because it is so popular, it can be easily integrated with other coding applications e.g. vs code
- free open source – it is free to upload open source code therefore there is more incentive to upload code as open source as it comes at no cost to the user
Other Forms of Versioning
- subversion – its actually less complicated than github in my opinion but code cannot be accessed offline because it is all stored on one centralised server. It has similar functions to GitHub like merging and system tracking. There is an extremely high level of control.
- Mercurial – commands are more simple however there is less version control because it doesn’t let you rewrite history. Old projects such as some game development studios used mercurial in the past.
- communication – things like pull requests can take longer when sent solely on GitHub so many projects choose to use a separate messaging system to streamline the collaborative development process. I have seen this personally and one project even require you to message the founder on twitter if you find a bug.