During the past years, Git has gained a lot of popularity. It’s a completely different approach to source control, compared to TFS Version Control (TFS VC). A good comparison between these two technologies can be found here. When dealing with BizTalk projects, it’s a common debate whether to use TFS VC or Git. Let’s have a closer look!
Git comes with a very specific branching model, that originates from the open source community. It introduces the concept of pull requests, which allows to code-review changes, before they get merged into the main branch. When you apply this in a consistent manner, it results in a continuous quality check of your code base and it facilitates discussions about best practices and approaches amongst developers. This is, in my humble opinion, the biggest advantage of Git.
Why no Git?
Merging is a necessary evil in both Git and TFS VC, but due to the Git branching model, it needs to be done more frequently when working with Git. Automatically created BizTalk files, such as orchestrations and pipelines, are a real pain when they need to be merged. It’s hard to use Git, when orchestrations and pipelines are in scope. Next to that, you require a well-tuned .gitignore file in order to exclude BizTalk’s generated .cs files. A final drawback is that Git comes with a little steeper learning curve, but with a good introduction to this distributed version control, we can overcome this one quite easily.
I truly love the way Git encourages small code iterations with regular code reviews. However, the issues it brings to merging orchestrations cannot be ignored! That’s why I tend to prefer TFS VC for BizTalk projects, as it has proven a good solution for managing our BizTalk code base. This conclusion is rather personal. The intention of this post is to trigger some discussion, which might lead to new insights. So, don’t hesitate the share your finding in the comments section!