Entwicklung eines einheitlichen Code-Commit- und Dokumentationssystems auf Basis von Git

  • Alexander Hütter

Student thesis: Master's Thesis

Abstract

Version control is a central component in the development of program code. The complexity of software and firmware makes the use of version control systems a common
necessity in order to deliver appropriate quality in a reasonable time. This problem
was recognized early on, which is why the Source Code Control System (SCCS) was
developed in 1972. Many of the subsequent version control systems are based on SCCS
concepts and introduce their own innovations. These include the switch from local to
central version control, whereby file changes are stored on a central server and can therefore be accessed by several developers. A well-known central version control system is
Subversion. It is still in use, but is increasingly being replaced by newer, distributed
version control systems. These systems store the repositories both centrally on servers
and locally on the development PCs.
Git is currently the most frequently used distributed version control system. The first
version was developed in 2005 by Linux initiator Linus Torvalds for the management
of Linux source code. It offers a variety of functions that are of central importance for
version control and the joint development of program code, such as branches and merges.
In this thesis, a Git workflow is developed to be used by a development team of a
firmware department. First, some general concepts such as “Repository”, “Commit” or
“Branch” are explained. This is followed by a description of some hosting providers for
Git repositories, such as GitHub and GitLab. Building on these basics, established Git
workflows are examined. This is intended to create an understanding of how Git is used.
These concepts are then used to develop a framework that is to be used in a firmware
department in order to standardize collaboration between developers. The development
tools already in use are to be retained. The workflow describes the rules according to
which commits and branches should be created. It also defines when pull requests should
be used and what information they should contain. Extensions to the workflow are then
described, such as the use of submodules. In the following chapters, experiences from the
test deployment of the workflow are presented. The background to some of the workflow
steps is explained and it is shown which changes were made to the workflow during the
test phase.
Date of Award2024
Original languageGerman (Austria)
SupervisorHerwig Mayr (Supervisor)

Cite this

'