SCM Concepts

Talend Software Development Life Cycle Best Practices Guide

author
Talend Documentation Team
EnrichVersion
6.5
EnrichProdName
Talend Big Data
Talend MDM Platform
Talend Data Integration
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend Data Management Platform
task
Design and Development
Deployment
Administration and Monitoring
EnrichPlatform
Talend Repository Manager
Talend Studio
Talend Administration Center
Talend JobServer
Talend CommandLine
Talend Artifact Repository
GIT and Subversion allow multiple developers to work on the same project by committing/pushing and retrieving their changes to/from the server.
  • Branching allows developers to isolate code and work independently without disturbing the main development line (the 'trunk' on SVN, the 'master' on GIT).

    A Branch is a copy of the project taken at a specific point in time, for example when preparing a new release for promotion to another environment. The copy can be taken from the main development line ('trunk' or 'master'), from another Branch or from a Tag. A Branch is editable and can therefore "fork" from the original source. In this situation, reconciliation between the original source (branch or trunk) and the forked Branch must be done manually.

  • Merging allows developers to join two or more development branches and their corresponding commit histories together. For more information on the concept of Git merging, see the git-merge documentation.

  • Tagging allows developers to mark a particular revision as important in the development process. Tags also allow you to fix errors on the exact same version as the one used to deploy the Jobs during the previous development phases.

    A Tag is similar to a Branch, but is a read-only snapshot of a Trunk/Master or Branch. Once created it cannot be edited in any way. However it is possible to create a new Branch (which is editable) from a Tag.

Development teams are expected to define the workflow they want to use. For more information on the differences between SVN and Git, see this GitHub documentation article.

The following diagram shows the generic process of SVN branching and tagging.
The following diagram shows the generic process of GIT branching and tagging.

For more information on Git flows, see this GitHub visual tutorial.