First, a little disclaimer - Be warned! This is a slightly more technical read than our usual blog posts, all about versioning, branches, committing your code, and so on. With that said, read on if you’re curious about integrating Git in your flow.
Although Studio Pro supports Subversion (SVN) out of the box, the demand rose to have the possibility of tracking changes with Git. So, as part of an effort to make it easier to share and reuse code, as well as a visual conflict resolution capability that enables developers to easily see the differences between multiple versions of the same code, Studio Pro 9 now supports the use of Git repositories.
Why the demand for Git?
While both SVN and Git are open source versioning tools, GIT has a few key advantages over SVN. For example:
Every user has their own copy of code on their local, like their own branch
No network is required with Git as you can commit locally
Revert changes made in specific commits is a little easier
Better integration into CI/CD pipelines
But that’s not to say Git doesn’t also have some disadvantages, like the higher learning curve. Nonetheless, all that’s required to activate and start using Git in a new project is to simply select the option under preferences > new features.
From that point on, Mendix users can start creating their own branches and commit and share their code with Git. Developers can find the required features in Mendix in the main navigation bar under ‘Version Control’, and luckily for them, Mendix kept the list of options under this item untouched, meaning developers that were already creating branches and committing them with SVN can use the same workflow with Git in Studio Pro.
Developers will notice the appearance of a list of branches on the team server page on the Developer Portal for their app, which contains info on the revisions as well as linked stories.
To really take Git to the next level and get the most of its functionality, Studio Pro now allows you to upload your app to a repository on your own Git server (like Github or Bitbucket) instead of the Teams server provided by Mendix. Developers can also download a project from this private repository, or move a Subversion app to Git.
With SVN becoming more and more obsolete, the adoption of Git by all major vendors, and the preference of developers to use Git over SVN, we expect a more profound integration of GIT into Mendix.
From a developer point of view, it seems there will be no difference in using Git and Mendix, as Mendix provides the same abstraction layer as with SVN to hide all the technical details. Therefore it will be up to the developer team to decide to make use of Git (as long as this is not the standard versioning tool in Mendix) and its branching/merging capabilities as well as pull requests.
For now, the existing Mendix Team Server in combination with SVN has satisfied our needs for all of our projects. However, we don’t exclude that the implementation of Git, and with that the use of a private version control server, can provide more options and flexibility in terms of code management. Even though Git is in Beta at the moment, we will keep monitoring the evolution of this new feature and its use in future projects.