In Git 2.38.0 a change was made to ensure Git can restore pre-merge state after a git-merge. This involves doing more work resulting in increased disk IO and CPU usage. In the context of running Git as a client this is an insignificant impact; however in Bitbucket Server and Data Center this codepath is executed frequently to test the mergeability of pull request and the impact on performance of the system can be substantial. In addition some operations such as the time for the merge button on a pull request to become active may increase from a second or so to 10+ seconds for some repositories (in the case where mergability information was not already calculated and cached).
Note: This is an issue for Git installed on the server, Git 2.38.0+ is still fine for Git clients.
We are tracking our fix for this at Performance regression running Bitbucket with Git 2.38.0+ and encourage you to watch that issue for the latest information.
As a workaround you can install on the server a Git version prior to 2.38. Be sure to install a version that is compatible with the version of Bitbucket Server you are running. The Bitbucket Server/DC Supported Platforms page provides compatibility information (be sure to select the correct version of Bitbucket from the version selector).
Jeff Thomas
Support Product Lead - DevTools
Atlassian
Missouri
116 accepted answers
1 comment