Weird problem with "cannot be rebased due to conflicts"

In our project, GitHub - scummvm/scummvm: ScummVM main repository we deliberately chose to use linear history, thus we force the PRs to be rebased, not merged

However, for a couple of months, this functionality is often not working on GitHub, as it displays that “This branch cannot be rebased due to conflicts”. This happens even with freshly rebased branches on top of the tip of the master. We see that primarily in bigger PRs.

A good example of it is one of the recent PRs: https://github.com/scummvm/scummvm/pull/2982 I was looking at it from different angles, it was repeatedly rebased on top of the master, but GitHub still unable to rebase it automatically.

I would appreciate any insights into the problem. Or at least the leads on where to look. The PR is creating a new directory and then goes with 1000+ commits exclusively over the files in this new directory, thus, even theoretically there could not be conflicts.

And independently of that, I wish GitHub at least provided the git logs from the rebase or the conflicting commit/files.

Hi @sev :wave:

Thanks for making your first post in the forum! I know you had several concerns here and I will do my best to address them. For now I wanted to chime in one one of the things you mentioned.

If the Resolve conflicts button is deactivated, your pull request’s merge conflict is too complex to resolve on GitHub. You must resolve the merge conflict using an alternative Git client, or by using Git on the command line.

For more information see “Resolving a merge conflict using the command line.”

Hi @ernest-phillips,

Thank you for your reply. As I mentioned, there are no conflicts, at all, even not possible. The PR in question (and we had a similar one recently) is only adding new files. No existing files are modified. Moreover, I was doing several manual rebases on the tip of the master, and when there were only new commits, GitHub still showed that it is not able to auto-rebase.

The only suspicion which we have is the PR size. When we see something over a couple hundred of commits, GitHub refuses to automerge it. This is another example which we had to merge manually: TRECISION: New engine for Nightlong: Union City Conspiracy by SupSuper · Pull Request #3016 · scummvm/scummvm · GitHub