Git is likely todays most important version control system. It is used for Linux, actively developed and stable.
If hosted solutions are ok, I would likely use GitHub. I've used GitHub for personal projects since 2011 and only experienced one outage of about 1 hour or so. Besides that, it was reliable. And the support was good.
Git is a decentralized version control system. This means has interesting implications on your workflow:
- You can commit locally. It doesn't matter if you are online or offline as git is on your local machine.
- The maintainance of the "main" code base is only convention. This comes from the OpenSource world where you might want to fork a project.
- You can have multiple branches of code. You usually have the
masterwhich should be relatively stable and several feature branches. As soon as a feature is ready it can be merged into the master. This keeps keeps the version history of the master cleaner as it is possible that you might go back and decide not to include a feature.
See Pro Git for more information.
Although you don't necessarily need anything else, a repositry manager is helpful for collaborative development. You want others in your organization be able to easily find, comment and contribute to your codebase.
Without a repository manager, others have to know that your project exits.
You can comment and contribute via e-mail. For example,
git bundle allows you to
share complete repositories, but you can also share patches with git.
|Comment||Fork of Gogs|
|On-premises vs Cloud||Both||Both||on-premises||on-premises|
|Written in||Ruby + Go||Java||Go||Go|
|Developers||GitLab Inc.||Atlassian Inc.||2 project members||18 maintainers|
|SO Questions||3954 / 9 / 9||145 / 11 / 13||59||2|
|Open Github Issues||8830||-||496||447|
|Minimum Hardware requirements||?||?||Raspberry Pi||Raspberry Pi|