Pull Request vs. Merge Request
Pull request vs. merge request, what is the difference?
Join the DZone community and get the full member experience.
Join For FreeWhen it comes to choosing a Git management tool, you need to consider various factors as it significantly affects the workflow and efficiency of the development process. One of the most important aspects to think about is how collaboration among all team members is organized in this application. Here are some questions we are going to answer in this article:
- Is there any difference between Pull requests and Merge Requests?
- How to work with Pull Requests in Bitbucket?
- How to work with Merge Requests in GitLab?
- How to get insights into Your Team Performance in Bitbucket?
- How to improve your development process?
What Is the Difference?
Pull Request in Bitbucket and GitHub or Merge Request in GitLab are the features made for more convenient code review and change management. Though they have different names, these features are equivalent, as they both do the same git merge command to merge feature branches or forks with the existing code. In essence, the requests are simply short messages to other developers describing the changes made to a branch. Sending it will ask your colleges to review the changes before merging them.
You probably want to ask why you need to use a special tool for something that a git command can do, but convenience and efficiency are what make a difference here:
- Your team ends up having a much higher quality code in your project as everyone on your team can check it and merge branches only after the code is good enough and meets your coding standards.
- You get a well-organized process where you can leave comments and see the changes between the main and the feature branch in one tool. So there’s no need to use text messages, emails, and other communication channels to discuss features. It works perfectly to lower miscommunication, especially for distributed teams, no matter whether they are located – in different rooms or cities.
- You can use this feature to evaluate the performance of your team and get some insights into how effective they are.
Working With Pull Requests in Bitbucket
Let’s look at how to use pull requests in Bitbucket and what information about your team's performance you can get from it.
For instance, one of your developers has just finished working on a feature in a dedicated branch. Now, this feature should be merged with the development branch. But it needs to be reviewed by other members of the team first.
So, your developer navigates to Create pull request, chooses the feature branch as Source and the development branch as Destination. The developer can add the Title and Description of the pull request and choose who will be Reviewers of it or leave it without a particular reviewer.
As the next step, a discussion of the feature begins. Each reviewer can:
- see what files have been edited, what commits have been made
- see what’s been changed since they last reviewed the code so that there’s no need to re-review everything again
- add comments to the whole pull request or a particular code line and discuss it
- decline a pull request or set Needs work status
- merge a pull request and delete the source branch if needed.
Working With Merge Requests in Gitlab
Now let’s find out how to use the Merge Request feature in GitLab to improve the code review process and change management.
Find the project name, navigate to Merge Requests, and click New merge request.
Choose the Source branch that you want to merge and the Target branch which will be the destination of your changes.
GitLab allows you to assign the merge request to choose who will review this request, define a milestone to track time-sensitive changes as well as label your merge requests in order to help contextualize and filter them over time. Same as in Bitbucket, it’s also possible to see the changes in edited files, the commits included in the merge request, discuss the feature with your team in the merge request thread, make code suggestions, and add a time estimation or the time spent.
When reviewers approve the changes, click Merge to merge branches.
Thus, similarly to a pull request, a merge request allows team members to provide feedback on proposed changes and merges, and possibly add new commits in order to further streamline the product development.
Insights on Your Team Performance in Bitbucket
While working in Bitbucket, you can also evaluate your team performance and track process improvements using the Awesome Graphs for Bitbucket app. This tool provides illustrative graphs and charts to visualize the contribution statistics in Git repositories and makes it possible to:
- analyze the performance of your developers and see who may need to improve their work patterns and who is doing a great job
- learn what reviewers are most active and diligent, i.e., they leave lots of comments and tasks in pull requests
- know the average resolution time of pull requests so that you could notice spikes and dive in to see what went wrong as well as capture trends in the code review process and plan the releases of new features
- see what pull requests had abnormally too short or too long resolution time, and drill into them to find out the reasons for such deviations
- monitor how changes in your processes affect the speed of code review and the quality of it
- export pull requests to CSV or via REST API to create custom graphs or dashboards and merge them with the data from other apps.
Improve Your Development Process
There is no doubt that the use of Pull Request in Bitbucket and GitHub or Merge Request in GitLab while working on the project positively affects the quality of the code your developers produce. Moreover, such collaboration definitely reduces the number of bugs in the code, improves communication between team members as well as simplifies the workflow.
As a result, the quality of your product gets better, your team works more effectively and your customers become much more satisfied. Apart from this, thanks to the detailed analysis of your team’s performance using the Awesome Graphs for Bitbucket app, it’s possible to unlock the full potential of your developers, remove blockers, improve the development process and increase the speed of it.
Published at DZone with permission of Yana Zinkevich. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments