Repository Software: a non-technical introduction

Print Friendly, PDF & Email

Pour lire la version française de cet article, cliquez ici.

This is the second part of an article on version control systems. Here, we discuss the strengths and weaknesses of various repository software, and where and how it is best used.

Coding software developer work with augmented reality dashboard computer icons of scrum agile development and code fork and versioning with responsive cybersecurity.Businessman hand working with laptop computer.

Comparisons of different repository software

Following up on the article on versioning, this article compares and analyses the following repository software:

  • CVSNT (Concurrent Version System)

  • Git

  • Mercurial

  • Rational Team Concert

  • Subversion

Each one will be looked at according to their:

  • Price (such as whether it is open-source, licensing, per-seat, per-core, or support contracts)

  • Environmental factors (hosted on a server or the cloud, the development language(s), and operating system

  • Advantages and disadvantages, and

  • Best-use scenarios, that is where the versioning system will actively help in the project.

A summary of repository software

CVSNT

A branch of CVS, this is an open-source versioning system first developed in 1986 and is considered to be the ancestor of other version control systems. It is widely used (your writer has used it for the development of automation software) and has been on the market long enough to be confident of its stability. The developers have implemented atomic commits and the system uses a SQL backend. However, this backend does not use the source files, but data about metrics and for audit purposes. CVSNT is also distributed with TortoiseCVS and WinCVS. Weaknesses are the continued dependence on flat files (which are more easily corrupted) and its handling of long branches.

Git

Probably the best-known version control system, created by Linus Torvalds (he called it “git” from the English slang word that means “unpleasant, silly, incompetent, annoying, or childish person”). It was primarily designed to speed and scale up patches and associated metadata for the Linux project. Git was also designed to avoid the pitfalls of CVS and integrate strong safeguards against data corruption. It succeeds well in these aims. The downsides are a steep learning curve for those moving from CVS, and limited Windows support. It is a popular tool with many offerings of the Git server, such as on the Cloud or a local server. Examples include GitHub, SourceForge, Bitbucket, and GitLab.

Mercurial

Developed to compete with Git for Linux kernel development. It is primarily implemented in the scripting language Python (most other version control systems are written in the programming language C). Though Mercurial shares some features with CVS, it is a fully distributed system; that is, it shares components and data across a range of machines while presenting itself as a unified system to its users. Mercurial is also relatively easy to learn and has excellent support documentation. However, it is not as easy to automate as Git and is less powerful without tuning.

Rational Team Concert

One of IBM Rational’s version control systems (others are ClearCase and Synergy). It has a clear set of templates and extensive reporting functions, which is useful for project management. It is very flexible, handles complex merges well, and has first-rate support. Drawbacks are an aging, clunky user interface and, for new users, there is a steep learning curve. Though the software is complex, there is a dedicated support team.

Subversion

Created as a tool that would fix some of the bugs in CVS whilst maintaining high-level compatibility with that software. It implements atomic operations to minimise the chances of data corruption. The extensive library of plug-ins increases its functionality and provides exemplary visibility for all changes. The software is very stable, conflict resolution is strong, and it is easily automated and integrated into an existing toolchain. However, performance is not good on Windows hosts (it is a lot faster on Linux) and there are some problems with file manipulation (sometimes requiring a two-step process).

Last word

Most of these tools require some level of oversight to ensure the best results and should be implemented using a solid framework such as Prince2 at the project management level and COBIT at the development level. It helps enormously to select a tool that meshes the best with the experience and culture of the development team.

Version management software is a keystone of development, ensuring fewer conflicts in merges, providing a valuable overview for the project managers, and speeding up the development process. As an essential part of the toolchain, they have different levels of integration by-product but most are sufficiently flexible to allow integration without too many problems.

Finally, it should be noted that the choice of tool is dependent on the needs and preferences of the development team, and there is no “one-size-fits-all” solution.

 

Further reading:

Version control system: a non-technical introduction by 

Continuous Integration: a non-technical introduction by 

Image:

Depositphotos

Andrew Clandillon Andrew Clandillon

An IT specialist for over thirty years, I can work as a Systems Architect, Business Analyst, Systems Analyst, or Project Manager, as well as in technical roles.  I am qualified in PRINCE2, COBIT5, and ITIL2, and am studying TOGAF (The Open Group Architecture Foundation).  I believe that structure, planning, and communication are the keys to successful IT management.

Spécialiste informatique depuis plus de trente ans, je peux travailler en tant qu'architecte de systèmes, analyste d'affaires, analyste de systèmes ou chef de projet, ainsi que dans des rôles techniques.  Je suis diplômé en PRINCE2, COBIT5 et ITIL2, et j'étudie TOGAF (The Open Group Architecture Foundation). Je crois que la structure, la planification et la communication sont les clés d'une gestion informatique réussie.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.