This post is from the CollabNet VersionOne blog and has not been updated since the original publish date.
TeamForge Just Got Even Better with Git Pull Request Feature!
We are excited that the latest release of TeamForge, our powerful and feature-rich software engineering platform, now extends coverage to include Git Pull Requests.
Specifically, the new 16.3 release of TeamForge comes with full support for a Git-Pull-Request-based feature branch development workflow, in addition to the existing individual commit-centric methodology from Gerrit. TeamForge accelerates Pull-Request-based reviews and streamlines root-cause analysis by automatically associating code commits to the ensuing Pull Requests as well as all related tracker artifacts, builds, build artifacts, etc.
This is significant for two reasons:
- Now, TeamForge users can use the most suitable development workflow, based on their personal liking and organizational preferences.
- By using the same underlying technology, Gerrit code review tool, same quality-gating criteria and processes can be used without making any modifications.
What is a Pull Request?
Git Pull Requests are a collaborative development and review model, taking advantage of Git’s powerful branching capabilities. Typically, a Pull Request is created when work in one branch (the source) is about to be merged into another branch (the target). Because Pull Requests are based on branches, there can be multiple code changes reviewed in one Pull Request. This is different from a Gerrit-based review model, where code changes are reviewed individually. Pull Requests are especially handy when multiple developers are working on a feature, and want implementation to be done in isolation, without disturbing ongoing work in the target branch. This is typically the case with the feature branch development model.
Pull Requests are a great way to collaboratively and quickly develop features, because they allow participants to review and discuss changes from a full contextual perspective (see screenshot below). As Pull Requests are based on a separate branch, other developers can also contribute to a work-in-progress feature simply by pushing new changes to that same branch. All changes, done to that same branch, are in scope of that same Pull Request. Once a Pull Request has been fine-tuned into perfection, and it fulfills defined quality criteria, it can be merged to the targeted branch. Using Pull Requests together with enforced review policies, continuous integration and quality gating criteria contributes to better code quality, allows team members to collaborate on code changes without disturbing the target branch, and improves knowledge sharing and teaming.
TeamForge supports full pull-request functionality (like creating, updating, abandoning, rebasing, and merging) and facilitates collaboration by enabling developers to vote, review, comment, and exchange notifications.
Best of Both Worlds
CollabNet TeamForge heavily leverages the popular open source code review tool, Gerrit. Gerrit is an advanced Git server, offering outstanding performance, security and quality control features. What Gerrit is most widely known for is providing powerful code review features. In addition to wide adoption by large scale industrial projects, Gerrit is used by a number of large open source projects like Android, Chrome, Eclipse, OpenStack and MediaWiki, to name a few. While Gerrit comes with very powerful code review features, preferred by many developers, the way it works and the development workflow it supports are different from the Git Pull Request approach. With CollabNet’s TeamForge, you’ll get the best of both worlds: Gerrit’s powerful, world class enterprise grade functionality, coupled with your favorite development workflow and review model.
With CollabNet TeamForge, comes full freedom to pick and choose the review model that best supports organizational needs and desired work mode. In fact, it is possible to combine both feature branch based Pull Request workflow and single commit based Gerrit reviews in the same project, and even within the same repository. As everything is based on the same underlying technology, Gerrit code review tool, the same review policies and quality gating criteria can be deployed regardless of the review model used. Having said that, just like single commit Gerrit reviews, TeamForge Pull Requests can be easily and effectively hooked-up with external tools, like for example popular open source Continuous Integration system Jenkins.
Stay tuned for my upcoming blog posts on how to configure and use the Git Pull Request feature with TeamForge. I will personally walk you through how to utilize both Gerrit based commit reviews and feature branch based Pull Request reviews in one repository. There’s also going to be an interesting post on how to configure and deploy various kinds of enforced review policies and quality gating processes to get the most out of your Pull Request based development workflow!
I invite to connect with me on LinkedIn and also feel free to share this blog with your colleagues and friends.