Ubuntu Unleashed 2019 Edition: Covering 18.04, 18.10, 19.04

(singke) #1

This chapter starts with information about version control systems and then
moves on to a short survey of some initiatives in the Ubuntu community to
whet your appetite and help you determine where to look to get connected and
get started if you want to do further work to make programs available to
others.


Version Control Systems


It was difficult to decide whether to include information on version control
systems in this chapter. On one hand, someone who only wants to scratch an
itch quickly may not be interested in setting up a version control system. On
the other hand, these systems are not difficult to set up, especially when used
with the assistance of a code-hosting site like the ones discussed in this
chapter, and they are immensely valuable if code is to have a life outside your
system.


Although you can use make to manage a small software project (see Chapter
40 , “Using Programming Tools for Ubuntu”), larger software projects require
document management, source code controls, security, and revision tracking
as the source code goes through a series of changes during its development.
Version control systems provide utilities for this kind of large software project
management. Changes to files placed in version control are tracked. Files can
be checked out by one developer, changed in their local environment, and
tested before those changes are saved in the version control system. Changes
that are later discovered to be unwanted can be found and removed from the
tracked files. Various version control systems manage projects differently;
some use a central repository, others a distributed format where any and every
copy could become the master copy.


The next few sections introduce the most commonly used version control
systems at the moment: Git, Bazaar, Subversion, and Mercurial. You have
certainly heard of others, and new ones crop up every few years. Each has
strengths and benefits. At the end of the chapter, in the “References” section,
you can find a list of resources for learning more about these version control
systems to further your knowledge after you peruse this chapter’s short and
basic introduction to each one.


NOTE
Subversion and Mercurial are still in heavy use, but most developers today
have switched to Git and Bazaar for new projects. Keep this in mind as you
read the next few sections.
Free download pdf