/
introduction.tex
8 lines (6 loc) · 2.47 KB
/
introduction.tex
1
2
3
4
5
6
7
8
\section {Introduction}
Managing software development is not a simple task. Depending on the size of the project, a few or even a whole bunch of people are involved in the development. This fact creates a few problems. For instance when several people work at one source file, or files are getting outdated, because someone else has modified it already. Problems like these are still very common in software development and sooner or later a good solution has to be found to minimize these problems or there is risk of losing control. One might ask how the best way of handling these problem looks like.
This is exactly what this work is about. It is about Version Control Systems, actually Distributed Version Control Systems. \emph{Distributed} ones are the modern approach of Version Control Systems, compared to the \emph{Centralized} models. However, this work does not only explain these Distributed Version Control Systems in general, it also provides a deeper look into one of these systems, named Git.
Git was chosen because it is currently our favourite Distributed Version Control System out of all of them. For us, it was clear from the beginning that we use Git to handle the writing progress of this scientific paper. This shows that we are really into Git and did not simply chose a random system out of the pool of modern Distributed Version Control Systems.
By reading this paper, the reader will get a deep look into the world of Distributed Version Control Systems, how and why they work.
Section \ref{whyrevisioncontrol} explains why Revision Control is needed at all. Section \ref{dvcshistory} provides a brief history of Distributed Version Control Systems (DVCS). Section \ref{explanationofterms} presents the basic terms used in DVCS showing how DVCS actually work. Section \ref{changeofworkflows} shows in which ways the workflows changed from the centralized systems to the distributed ones. Section \ref{critismondvcs} presents a critical view on the DVCS world, mentioning possible problems in the DVCS model. Section \ref{githistory} introduces Git beginning with a short history. Section \ref{howdoesgitwork} focusses on Git and provides a deeper look into Git and what Git does internally. Section \ref{comparisontootherdvcs} compares Git to other common DVCS statistically. Section \ref{currentdevelopment} presents what the current development around the whole DVCS topic looks like, pointing out a few popular and rising projects. Section \ref{conclusion} finally gives a short conclusion.