Issue Summary
This issue only happens on remote Mesh nodes. Bitbucket without remote Mesh nodes is unaffected.
Declining and reopening a pull request can lead to the loss of some of the commits that are involved in the pull request in the following circumstances:
- If a force push is performed to the "from" branch
- If the "squash merge" or "rebase + merge" merge strategies are used
- The pull request is declined again after commits were added to the "from" branch
- Any other circumstance that causes a commit to not end up in the target branch when the pull request is merged
Any commits that are merged into the target branch are not affected.
This is reproducible on Data Center: yes
Steps to Reproduce
- Open a pull request
- Decline the pull request
- Wait for a "vacuum" operation on the Mesh nodes to occur (look for the log line Vacuum into shared-objects completed in XXX ms)
- Reopen the pull request
- Perform any of the actions mentioned above
Expected Results
All commits that were involved in a pull request remain accessible.
Actual Results
An error dialog is shown when the "diff" tab is clicked and comments in the pull request activity do not show code.
Example error dialog message:
'git merge-base XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX' exited with code 128 saying: fatal: Not a valid commit name XXXXXXXXXXXXXXXXXXXXXXXXX
Workaround
Currently there is no known workaround for this behavior. A workaround will be added here when available.