Current Concepts in Version Control Systems Bachelor thesis, Petr Baudis, academic year 2006/2007 Abstract: We will describe and analyse the concepts, architectural approaches and methods currently in use in the field of version control systems, present some original work in the area and propose and outline interesting future research directions Popíšeme a rozebereme koncepty, návrhové principy a metody v současnosti užívané v oboru systémů pro správu verzí, představíme původní práci v této oblasti a poukážeme na možné zajímavé směry dalšího výzkumu Outline: 1. Introduction 2. History Organization We will explore how can the history be organized, the merits and shortcomings of each described approach, as well as implications on the history model imposed by choice of centralized / decentralized model of the system 3. Storage Model While the history can be organized one way on the logical level, it is often beneficial to choose a storage model which may not directly share the design properties of the chosen logical architecture, since it can provide significant space and time effectivity improvements. We will explore possible approaches in the field of permanent versioned data and metadata storage 4. User Interaction We will explore various approaches to user interface in the field of version control, what imlications do architectural decisions have on the user interface and how can current tools aid the user effectively with various tasks 5. Merging Methods One very important capability of version control systems (that support branching) is merging branches, and it is currently also one of the most active area of research in this field; we will cover the most frequently used and most promising methods of universal textual merging and briefly cover some of the specialized merging 6. Conclusion