top of page

Version Control: Strategies, Tools, and Best Practices (#2)

This letter guides readers on essential version control strategies and tools for efficient file tracking, focusing on Git-based platforms like GitHub or GitLab. It outlines advantages like infinite undos, branching for experimentation, and collaboration facilitation.

6166860.jpg

Introduction

In today's dynamic environment, keeping track of changes in your files is essential. Knowing what changed, when, why and by whom helps ensure accountability and helps you find the correct version of a file to avoid data loss. There are two primary strategies for approaching version control.

One approach involves manual change logs, where version numbers are incorporated into file names. For more detailed change tracking, a separate change log file can be maintained. In written documents, a version control table can effectively track the file's history. However, for automated version control, various tools are available, which we'll explore in this newsletter to prevent scenarios like the one depicted below:

Key tactics on version control:

In some cases, it is sufficient to have manual change logs. This could be done by incorporating the version number in the file name. Use consecutive numbering for major version changes, with decimals used for minor changes (v1; v1.1; v2.1; v2.2).

And when more details about changes have to be provided you can create a manual change log in the separate file. In written documents a version control table could be a practical way to truck a version history of the file. 

Record every change irrespective of how minor that change may be. However, keep in mind that too many similar or related files may be confusing, both to yourself and to anyone else wanting to access or use your data.

It is easier to maintain a manageable number of versions with a clear naming structure. As long as the original 'raw' or definitive copy is retained and processing is well documented, intermediate working files can be discarded.

Version Control Software

There are a number of useful tools available designed to help you track and version your code. The most widely used are based on the Git versioning system, and these include:

       It is a tool that can be used for collaborations since it facilitates collaborative changes to files. Take a look at the videos to learn quickly about version control and git or consider reading its manual.

 

Git is mainly used via command line but several clients are available. Browse through thlist of clients.

       Students or employees can login via Shibboleth, external partners can use a GitHub account for authentication.

       If you are not familiar with the online platform GitLab, there are plenty of helpful introduction videos available, e.g. *GitLab Beginner Tutorial 1 | Introduction and Getting Started*.

These tools are designed specifically to track the development and allow you to version your code. They support and promote collaborative working and allow you to make your code publicly available when appropriate.

Advantages of version control software

  • Infinite undos: VCS allows users to revert to a previous version of a file or file set to restore or recover a previous state of a program application or website. This allows you to restore accidentally deleted or overwritten files in a project, or to restore file sets from a prior version save.

  • Branching and experimentation: It allows you to test out new features in programming code or branch out on a different path without affecting your collaborator's work in the production code. Later, your branch can be merged in with the production, saved, or discarded as necessitated.

  • Collaboration: Collaborators can work locally on the file while the VCS handles the tasks of merging changes and keeping the files and directory trees in sync. The VCS also promotes accountability, tracking who's made which changes and when, so any questions about the changes can be followed up with the appropriate person.

 

If your code is extensive, it is highly recommended to use a Git repository. 

If your code base is small and comprises only one or two files, you may prefer to use a manual versioning system instead.

Workshops available

If you would like to know more about git and GitLab there are several workshops and courses offered by the RWTH:

Disclaimer

I hope this was an interesting read. If you have comments, remarks, or suggestions about other RDM-related topics for the next newsletters, please let me know by sending me an email at dukkart@itc.rwth-aachen.de.

Image designed by stories / Freepik, 

bottom of page