GitLab dev to qa merge conflict with no resolution options
Tech

GitLab dev to qa merge conflict with no resolution options

GitLab dev to qa merge conflict with no resolution options can occur on multiple different occasions. One of the main reasons You can run into is :

  • Different commits not existing in other branch. It might occurr during accidental squash merge to QA, these commit will be missing from the dev history on the next merge request. The history will be different. Gitlab won`t show possibility to resolve the conflict.

You can still check it out locally. The merge request You will be able to see and resolve in intellij or command line, whatever You fancy. At least you will be able to pull and just use the things that causes the conflic from QA. Unfortunetly it might require You to work on some changes again.

  1. Checkout a fresh clean dev
  2. Compare dev and qa – there will bo some things on QA we do not have locally or we will have a 'never’ version. It will not be based on the same history. Put all the differences in a patch or shelve it.
  3. Merge QA to DEV- accept everything from the QA.
  4. Push feature branch
  5. Merge to dev
  6. Now You can merge dev to qa. You will be will be missing some changes. You will have to add them by using a shelved version.

For more stability i would do it one branch after the other so gitlab will not have issues when we first merge everything from QA using qa version and then on top of that add again the changines in conflict.

It should work cause the history commit when You merge qa to dev will be the same but i guess it is never 'THAT SIMPLE’.

Other issues gitlab cannot handle ( not yet )

This is from the gitlab documentation about conflict merging (2 different links).

  • Filename changes – usually there will be two files.
  • If the file isn’t in a UTF-8 compatible encoding, we can’t allow resolving it because we pass data back and forth as JSON.
  • Files is too larger then 200 KB, gitlab won`t parse it.

Rebase might not work

Cause there will be a history conflit so it doesn`t really help. The main problem will be is that You will think it should work and gitlab should handle it 🙂 But it doesnt, sadly.

Piotr Kowalski