If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas

George Bernard Shaw

Real life projects generally have multiple developers working in parallel. Thus, it is very important to have a tool ensuring a version control system, like Git, that provides teams and even individuals with the capability to maintain the code and control it with version control. In particular, in teamwork, this is fundamental to ensure there are no code conflicts between the developers. Additionally, the activity requirements can change often, especially if you work in an agile-based company: so, it can happens that a code you write two months ago and at that moment was rejected by the customer, it will come in use at a different time. A version control system allows developers to revert and go back to older versions of the code and be sure nothing is lost or, for example, to switch back to a previous release meanwhile developing another feature, and make a bugfix in a very clear way, without losing a bit of code (the new feature and the release).

In i-EM, our best practices involve a version control system; recently, we switched from SVN to GIT.

Why you should use Git?

Based on our understanding and our workflow needs, Git is better than SVN at branching.

Git is also more popular, while SVN’s popularity seems to be decreasing. Thus, with many teams aiming at making this change, the community becomes larger and larger and recommendations and problem-solving posts will be more numerous. Additionally, Git manage merges more smoothly, it has a distributed design allowing the developers to be more efficient.

In i-EM, we adopt Microsoft Azure as cloud provider; Azure provides a great tool called DevOps to manage software projects that has many features. Between others, the possibility, within a project, to create git repositories and manage CI/CD workflows through a clear web interface.

But what is exactly a git repository? A git repository is a folder inside your project where git save all the history of changes you and other programmers do. This folder is specific for every software developer and is required by the version control system to track changes, check for code overlapping and more.

After its massive adoption, many cloud git providers were born, for example GitHub, GitLab, Bitbucket. Any git cloud provider has different features, but most of these allow to create repositories for free.

TIP: Do you know that you start a new repository locally? You can “init” a new repo locally, and after several commit you can create a remote repository to which push your complete version history.

In our opinion, Git made our developers work easier. 

Thank you for reading and happy versioning!

R

For the curious costumer

At i-EM S.r.l., we think that a long journey starts from a single and smart step; also, we know that the devil is in the details, and a good procedure can help to take them into account.

Authors

Fabrizio Ruffini, PhD

Senior Data Scientist at i-EM

Simone Di Franco

Software Developer at i-EM