Best Practices: Using Git with Talend
Talend introduced Git and Github support for the first time in December 2015 for Talend 6.1.1 release. This article describes some best practices on how you should use Git with Talend Administration Center and Talend Studio.
We will also cover some current limitations in Talend 6.1.x regarding Git support and what we can expect from Talend in future versions.
In summary, Talend makes it easy to use both Subversion and Git. The main differences are in the way the two SCM behave and the workflow needed when using them.
Differences Between Subversion and Git with Talend
Subversion repositories are similar to Git repositories, but there are several differences when it comes to the architecture of your projects. The following article What are the differences between SVN and Git? describes the differences in the directory structure and workflow between SVN and Git. Development teams are expected to define the workflow they want to use with Git and Talend while taking into considerations the features and limitations described below.
The main difference between SVN and Git is the way you work:
- SVN: create branches once a release is ready. In Talend, a branch is created only for the project you want/specify in Talend Administration Center.
- Git: Create branches for each development (bug, new feature) and then merge it to the master and release branch. In Talend, a branch is created on the repository. Hence, the branch is available on all projects within that repository. A tag created on a Git project will appear as a Release in Git as shown below.
Features and Limitations
The following section lists some of the features and limitations you need to be aware when deciding to use Git with Talend 6.1.1.
- Talend support a Git backend with the exact same workflow as for SVN.
- Branches created are directly related to the whole Git repository (means a branch created for a specific project will be available for all others projects on the same Git repository).
- No graphical job comparison available in 6.1.x in order to support a pure Git workflow. Talend is working towards introducing a graphical job comparison in future versions.
- A branch created for a specific project will be available for all others projects in the same Git repository.
- There is currently an issue with MDM projects and MDM artifacts in Git repository. You will need a patch on top of 6.1.1 to be able to use Git to store MDM artifacts in your MDM projects.
Talend recommends using Git with a centralized workflow as described here https://www.atlassian.com/git/tutorials/comparing-workflows/centralized-workflow with one caveat. This caveat is that the users should not clone the repository as the comparison feature for jobs is still missing in 6.1.1. Users should use the central repository and leverage the Talend Administration Center locking mechanism to identify which jobs are locked and being edited, similar to the SVN workflow.
Branching in a repository makes that branch available to all projects. Hence, developers should be more careful about how to leverage branches for across projects. This can initially create confusion and it is important to spend time to define the correct development workflow.