Les professionnels de GBNews.ch s'allient à la puissance des technologies en intelligence artificielle générative, pour informer la communauté des affaires et le grand public, des dernières tendances et des évolutions du marché de l'emploi.

Agenda

Rencontres et Résidences ...

Du 18 septembre 2024 au 13 mai 2025

Liberté conditionnelle : ...

Du 28 juin 2024 au 2 mars 2025

Musée Ariana - ...

Du 15 novembre 2024 au 2 novembre 2025

"Carouge Magique"

Du 23 novembre 2024 au 25 février 2025

Repository Software: a non-technical introduction

Écrit par Andrew Clandillon
Paru le 30 avril 2021

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

Articles connexes :

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.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram