Collaborative development was born as a need from the Open Source community. This is a crucial requirement to make Open Source development and contributions possible. Repositories for most feature is version control keeping track of changes to sources file, generating Diffs and Merges, forking it and taking snapshots. Each version control technology offer different features, depending on your project and source layout, some are better suited for a specific application and type of developer interaction. Our choice lies with Subversion and Git. Subversion is used for normal projects straight within the IDE. If your project is very much source tree dependent and use external Makefiles, Git offers far better integration. 


Linux Kernel and Git

git logo

Git was created by Linus Torvalds as a new repository system for the Linux Kernel. Git offers speed, a simple design, strong support for non-linear development and is able to handle large projects like the Linux Kernel. Git has grown into a popular version control system outclassing other SCMs. Because Git keep data local and handle changes as mini file system snapshots, it is perfect for embedded development. For projects with complex and large source trees, external build tools and multiple architecture support Git will be the best to use. If your project us open source online Git repositories can do the hosting for you.




GitHub is an online Git repository. Public repositories are available for free, but organizations can also purchase hosting plans which include a number of private repositories. Many open source projects are hosted on GitHub and is a popular meeting place for open source collaborative development.




Subversion is an open source version control system and a project of the Apache Software Foundation. It is part of a rich community of developers and users and gained a lot of popularity since it was founded in 2000. Subversion is widely supported by IDEs such as Eclipse and its derivatives. It is straight forward to setup a server repository on most Linux Distros, like Ubuntu, and clients can be integrated or external to an IDE.


Source Forge

Source Forge offer public Subversion repositories online. Source Forge hosts thousands of online projects to share with the open source community. It is an excellent platform to stage your Subversion repository, but Source Forge focus is on the project and the repositories are merely a way to set an environment for collaborative development.




TortoiseSVN is a Windows SVN shell client extension. It is intuitive and easy to use. TortioseSVN integrates into the Windows Folder Explorer and any folder can be imported or exported to a remote SVN repository. If you develop on Windows and your IDE does not support Subverison, then this is your best choice to connect to a repository. On many occasions Tortoise will be employed to handle a mix set of source from a user application right down to embedded level doing very control into one single repository.